Election Management System
Distributed backend for a national election platform
Problem / Context
The Challenge
Managing candidate nominations, verification, and result workflows for a national election required a secure, high-availability distributed system capable of handling peak-period traffic.
Context
Commercial platform at Penta Global Ltd. comprising nearly 25 microservices. Supports 50,000 users and approximately 100,000 daily requests during election periods.
My Responsibility
- •Led backend task allocation, grooming, planning, implementation guidance, and code reviews within a 30-person development team
- •Designed REST API contracts for nomination lifecycle, candidate review, verification, payment-linked submission, and report generation
- •Owned a reporting service that consolidated data from multiple services to generate official nomination, affidavit, candidate, schedule, and result PDF reports
- •Applied Keycloak-backed authorization and workflow validation across sensitive nomination state transitions
- •Replaced manual result-center, voter, candidate, and percentage-calculation workflows with digital system workflows for approximately 300 returning officers
- •Used RabbitMQ for election workflows and contributed to approximately 30 deployments via Dockerfiles, Nginx configuration, and GitHub Actions CI/CD
Architecture & Key Decisions
Microservices architecture of nearly 25 services. Services communicate via REST and RabbitMQ. Keycloak handles SSO and RBAC. Deployed to a self-managed Kubernetes data center with CI/CD via GitHub Actions.
Challenges & Solutions
Challenge #1
Coordinating data across nearly 25 distributed services while generating consistent official reports
Solution
Owned a dedicated reporting service that fetched and consolidated data from upstream services via REST, then rendered official PDF reports using a consistent template
Challenge #2
Enforcing nomination workflow rules across sensitive state transitions with different authority levels
Solution
Applied Keycloak-backed role authorization combined with server-side state transition validation on each API route
Challenge #3
Supporting approximately 100,000 daily requests during election periods versus 10,000 outside elections
Solution
Deployed on Kubernetes with horizontal scaling; used Docker and CI/CD pipelines to support approximately 30 production deployments
Impact & Outcomes
Lessons Learned
- →Owning a cross-service reporting layer requires careful dependency management and resilient data fetching
- →Keycloak's token introspection and role enforcement scales well in a microservices environment when applied consistently
- →CI/CD and Kubernetes support frequent deployments but require disciplined Dockerfile and Nginx configuration practices