Introduction
I am writing this series of blog posts to document what I am learning while building a project. You are welcome to criticize and guide me toward areas of improvement — or maybe, and I genuinely hope this, I can introduce you to concepts or ideas you haven’t encountered before, so we both can grow. I will focus on architectural and design concepts and the technologies that can be applied regardless of your framework and programming language of developing the application.
GitHub Repository
There you can find more details, including ADRs (Architectural Design Records) and more extensive documentation.
mazenaly256
/
Cinema-Seat-Reservation-System
Cloud-native microservices-based cinema seat reservation system developed. Designed for modularity and scalability.
Cinema Seat Reservation System
A cloud-native, microservices-based ecosystem developed in ASP.NET Core with REST APIs. This system features deliberate design decisions optimized for modularity, scalability and resilience — implementing proven distributed systems patterns such as Retries and Circuit Breakers and Request Timeouts alongside automated CI pipelines and manual deployment workflow.
Architectural Overview
Diagram
Services
| Service | Responsibility |
|---|---|
| API Gateway | Centralized authentication, rate limiting, request timeouts, and routing to the main services |
| Identity Service | Centralized Identity Provider — user management and JWT issuance |
| Movie Service | Movies and showtimes management |
| Reservation Service | Seat layout, seat holds, and seat reservations |
Getting Started
The system is live and ready to test via Postman Workspace
The workspace includes:
- Complete API documentation, with organized request collections and folders for each service
- All API endpoints with example requests and responses, featuring interactive testing
- Pre-configured variables containing hosting Azure VM IP with ports to access the services
How to…
System Overview
I have built a microservices-based backend system, for handling seat reservations in a cinema, each service has its own database. I applied many new concepts that I have learned including how to split the system and build the architecture that offers the modularity and future scalability for the application, building and securing API endpoints using JWT, implementing an API gateway to be the single entry point for my whole system, building a basic CI Pipeline using GitHub Actions, containerizing the services with configuring and running together via Docker Compose.
Services
Movie Service: Responsible for CRUD operations on movies and showtimes, and enforces role-based access control.
Reservation Service: Responsible for handling seats availability checks and the logic of seats reservations and payment.
Identity Service: Acts as the centralized Identity Provider for the whole system, responsible for storing and managing users and issuing JWT tokens that are trusted across all the system.
API Gateway: The single entry point for the system, acting as an architectural AOP (Aspect-Oriented Programming) layer. It centralizes cross-cutting concerns like authentication, rate limiting, and request timeouts in one place instead of duplicating their logic across all the system services. In addition to the main responsibility of API Gateway that is forwarding the requests to downstream services.
System Architecture
GitHub Release
Next Steps
What I am going to do in my next few posts, is to document the main points of transitioning this system from the development phase on my local machine to a fully deployed, cloud-native, production-scale system.


Top comments (0)