DEV Community

Mazen Aly
Mazen Aly

Posted on

Cinema Seat Reservation System — From Baseline Local Development To Live Cloud-Native Production — Part 1: Overview & Architecture

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.

GitHub logo mazenaly256 / Cinema-Seat-Reservation-System

Microservices-based cinema seat reservation system developed in ASP.NET with REST API. Designed for modularity and scalability.

Cinema Seat Reservation System

A distributed microservices architecture built on ASP.NET and Docker. Designed for modularity and scalability

Architectural Overview

This system is a multi-service ecosystem designed to demonstrate scalable backend patterns, automated infrastructure management, and performance optimization in resource-constrained environments.

Architecture 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 apply rate limits and timeouts for requests.




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, containerize the services and orchestrate between them 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

Basic System Architecture Diagram

 

GitHub Release


Next Steps

What I am going to do in my next few posts, is to document the whole process of transitioning this system from the development phase on my local machine to a fully deployed, cloud-native, production-scale system.

Top comments (0)