awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
dockersamples avatar

dockersamples/example-voting-app

0
View on GitHub↗
5,622 estrellas·15,105 forks·C#·apache-2.0·2 vistas

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.

Historial de estrellas

Gráfico del historial de estrellas de dockersamples/example-voting-appGráfico del historial de estrellas de dockersamples/example-voting-app

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Example Voting App

Proyectos open-source similares, clasificados según cuántas características comparten con Example Voting App.
  • eon01/dockercheatsheetAvatar de eon01

    eon01/DockerCheatSheet

    3,938Ver en 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

    Ver en GitHub↗3,938
  • rq/rqAvatar de rq

    rq/rq

    10,653Ver en 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
    Ver en GitHub↗10,653
  • tporadowski/redisAvatar de tporadowski

    tporadowski/redis

    9,987Ver en 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
    Ver en GitHub↗9,987
  • optimalbits/bullAvatar de OptimalBits

    OptimalBits/bull

    16,243Ver en 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
    Ver en GitHub↗16,243
Ver las 30 alternativas a Example Voting App→

Preguntas frecuentes

¿Qué hace 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.

¿Cuáles son las características principales de dockersamples/example-voting-app?

Las características principales de dockersamples/example-voting-app son: Distributed Polling Systems, Live Tally Displays, Docker Compose Deployments, Docker Swarm Orchestration, Message Queue Workers, Message Queues, Multi-Container Orchestration, Queued Vote Persistence Workers.

¿Qué alternativas de código abierto existen para dockersamples/example-voting-app?

Las alternativas de código abierto para dockersamples/example-voting-app incluyen: 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…