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 in ASP.NET with REST API, featuring deliberate system design decisions. 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/CD pipelines.
Architectural Overview
Diagram
Services
- Movie Service: Responsible for movies and showtimes.
- Reservation Service: Responsible for seats layout representation and seat reservation.
- Identity Service: Acts as the centralized Identity Provider (IdP) for the system.
- API Gateway: Centralizes the logic of authentication and applies rate limiting, timeouts, and routing policies for all incoming traffic.
API Documentation
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)