awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dockersamples avatar

dockersamples/example-voting-app

0
View on GitHub↗
5,622 星标·15,105 分支·C#·apache-2.0·2 次浏览

Example Voting App

This is a distributed voting application designed to demonstrate a multi-service architecture. It uses stateless web frontends for submitting votes and viewing live results, with a Redis-backed queue to buffer incoming votes and a PostgreSQL database for persistent tallying. The application is built around asynchronous message queue processing, decoupling the vote submission from the tallying workflow.

The project showcases how to deploy a multi-service application using container orchestration tools. It provides YAML-driven declarative deployment manifests for Docker Compose, Docker Swarm, and Kubernetes, enabling reproducible deployments across single hosts or clusters. A background worker service reads votes from the message queue and writes them to the database for reliable, real-time result aggregation.

The application includes a voting ballot interface for user input and a live results viewer that displays aggregated vote counts as they are processed. The entire system is defined as interconnected Docker containers, with services, networks, and volumes specified in YAML manifests for flexible deployment.

Features

  • Distributed Polling Systems - Runs a distributed voting system with multiple services, queues, and databases to collect and tally votes.
  • Live Tally Displays - Displays aggregated vote counts as they are processed, updating live through a web interface.
  • Docker Compose Deployments - Launches a complete multi-service voting system using a single Docker Compose command.
  • Docker Swarm Orchestration - Demonstrates deploying and scaling a multi-service application across a Docker Swarm cluster.
  • Message Queue Workers - Stores incoming votes in a Redis list for asynchronous consumption by a background worker.
  • Message Queues - Uses a message broker to queue vote messages for background processing, decoupling submission from tallying.
  • Multi-Container Orchestration - Runs as multiple interconnected Docker containers managed by Compose, Swarm, or Kubernetes.
  • Message Queues - Uses a Redis message queue to decouple vote submission from background tallying.
  • Queued Vote Persistence Workers - Reads voting messages from a message broker and persists the results to a database for later tallying.
  • Redis-Backed Queues - Stores incoming ballot choices in a Redis list for asynchronous processing by a background worker.
  • Vote Buffers - Buffers incoming votes in a Redis list for reliable asynchronous processing by a background worker.
  • Vote Tallies - Provides a PostgreSQL database that stores processed vote counts for live result aggregation.
  • Live Tally Displays - Displays aggregated vote counts as they are processed, updating live through a web interface.
  • PostgreSQL Vote Tallies - Persists processed vote counts in a PostgreSQL database for real-time result aggregation and display.
  • Tally Workers - Runs a background worker that reads votes from a Redis queue and writes them to PostgreSQL.
  • Ballot Forms - Presents a web interface where users select between two options and submits the choice to a message queue.
  • Background Processing Workers - Processes queued tasks asynchronously in a separate service to decouple work from the request-response cycle.
  • Orchestrator Manifests - Provides YAML manifests for deploying the application via Docker Compose, Swarm, and Kubernetes.
  • Kubernetes Deployments - Deploys the multi-service application to Kubernetes using YAML manifests and node-port services.
  • Multi-Service Manifests - Applies pre-configured YAML manifests to create all Kubernetes services and deployments at once.
  • Node-Port Exposures - Creates Kubernetes services that expose the voting and result web apps on fixed node ports.
  • Stateless Architectures - Ships stateless web frontends that delegate all state management to the message queue and database.

Star 历史

dockersamples/example-voting-app 的 Star 历史图表dockersamples/example-voting-app 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

常见问题解答

dockersamples/example-voting-app 是做什么的?

This is a distributed voting application designed to demonstrate a multi-service architecture. It uses stateless web frontends for submitting votes and viewing live results, with a Redis-backed queue to buffer incoming votes and a PostgreSQL database for persistent tallying. The application is built around asynchronous message queue processing, decoupling the vote submission from the tallying workflow.

dockersamples/example-voting-app 的主要功能有哪些?

dockersamples/example-voting-app 的主要功能包括:Distributed Polling Systems, Live Tally Displays, Docker Compose Deployments, Docker Swarm Orchestration, Message Queue Workers, Message Queues, Multi-Container Orchestration, Queued Vote Persistence Workers。

dockersamples/example-voting-app 有哪些开源替代品?

dockersamples/example-voting-app 的开源替代品包括: eon01/dockercheatsheet — This project is a comprehensive reference guide and cheat sheet for the Docker CLI. It provides a structured… rq/rq — rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task… tporadowski/redis — Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL… optimalbits/bull — Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It… openpanel-dev/openpanel — OpenPanel is a self-hosted product analytics platform designed for tracking user behavior and visualizing product… collabnix/dockerlabs — dockerlabs is a collection of educational labs and technical tutorials designed to teach the fundamentals of…

Example Voting App 的开源替代方案

相似的开源项目,按与 Example Voting App 的功能重合度排序。
  • eon01/dockercheatsheeteon01 的头像

    eon01/DockerCheatSheet

    3,938在 GitHub 上查看↗

    This project is a comprehensive reference guide and cheat sheet for the Docker CLI. It provides a structured collection of commands and documentation to help users manage container lifecycles, build images, and handle registries. The documentation specifically covers the orchestration of multi-container applications using Docker Compose and the management of scalable services across multiple nodes via Docker Swarm. It also includes detailed guides for configuring virtual networks, bridges, and ports to control container communication. The reference surface extends to container image administ

    在 GitHub 上查看↗3,938
  • rq/rqrq 的头像

    rq/rq

    10,653在 GitHub 上查看↗

    rq is a distributed task queue and background worker system for Python that uses a Redis backend to decouple task submission from execution. It functions as a reliable message queue and task scheduler, allowing Python functions or asyncio coroutines to be processed asynchronously across multiple worker processes. The project distinguishes itself through reliable queuing mechanisms that prevent job loss during worker crashes using atomic operations. It provides specialized orchestration capabilities, including the prevention of duplicate jobs, job execution prioritization, and the ability to m

    Pythonasyncbackground-jobsdelayed-jobs
    在 GitHub 上查看↗10,653
  • tporadowski/redistporadowski 的头像

    tporadowski/redis

    9,987在 GitHub 上查看↗

    Redis is a high-performance in-memory key-value store that functions as a distributed cache, message broker, and NoSQL database. It provides sub-millisecond read and write access to data stored in RAM and can operate as a vector database for indexing high-dimensional embeddings. The system supports a wide range of data storage and synchronization primitives, including the management of strings, hashes, lists, sets, and JSON documents. It enables real-time data operations through atomic transactions, hybrid persistence using snapshots and append-only logs, and high-availability configurations

    Credisredis-for-windowsredis-msi-installer
    在 GitHub 上查看↗9,987
  • optimalbits/bullOptimalBits 的头像

    OptimalBits/bull

    16,243在 GitHub 上查看↗

    Bull is a Node.js library for managing distributed jobs and message queues using Redis as the primary data store. It functions as a distributed task worker, job scheduler, and priority queue manager designed to handle asynchronous workloads across multiple processes. The project distinguishes itself by providing a persistent communication channel that decouples servers through the exchange of serializable data objects. It ensures distributed system reliability by detecting stalled tasks and recovering from process crashes to ensure every queued job is completed. The system covers a broad ran

    JavaScriptjobjob-queuemessage
    在 GitHub 上查看↗16,243
  • 查看 Example Voting App 的所有 30 个替代方案→