<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mazen Aly</title>
    <description>The latest articles on DEV Community by Mazen Aly (@mazenaly256).</description>
    <link>https://dev.to/mazenaly256</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3951938%2F197107da-8d37-4fb6-9f1a-5c8029f96024.png</url>
      <title>DEV Community: Mazen Aly</title>
      <link>https://dev.to/mazenaly256</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mazenaly256"/>
    <language>en</language>
    <item>
      <title>Cinema Seat Reservation System — From Baseline Local Development To Live Cloud-Native Production — Part 1: Overview &amp; Architecture</title>
      <dc:creator>Mazen Aly</dc:creator>
      <pubDate>Tue, 26 May 2026 08:11:09 +0000</pubDate>
      <link>https://dev.to/mazenaly256/cinema-seat-reservation-system-from-baseline-local-development-to-live-cloud-native-production--1d9i</link>
      <guid>https://dev.to/mazenaly256/cinema-seat-reservation-system-from-baseline-local-development-to-live-cloud-native-production--1d9i</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Repository
&lt;/h3&gt;

&lt;p&gt;There you can find more details, including ADRs (Architectural Design Records) and more extensive documentation.&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/mazenaly256" rel="noopener noreferrer"&gt;
        mazenaly256
      &lt;/a&gt; / &lt;a href="https://github.com/mazenaly256/Cinema-Seat-Reservation-System" rel="noopener noreferrer"&gt;
        Cinema-Seat-Reservation-System
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Microservices-based cinema seat reservation system developed in ASP.NET with REST API. Designed for modularity and scalability.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Cinema Seat Reservation System&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;em&gt;A distributed microservices architecture built on ASP.NET and Docker. Designed for modularity and scalability&lt;/em&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Architectural Overview&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;This system is a multi-service ecosystem designed to demonstrate scalable backend patterns, automated infrastructure management, and performance optimization in resource-constrained environments.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/mazenaly256/Cinema-Seat-Reservation-System/docs/system-architecture-diagram.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fmazenaly256%2FCinema-Seat-Reservation-System%2FHEAD%2Fdocs%2Fsystem-architecture-diagram.png" alt="Architecture Diagram"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Services&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Movie Service:&lt;/strong&gt; Responsible for movies and showtimes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reservation Service:&lt;/strong&gt; Responsible for seats layout representation and seat reservation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identity Service:&lt;/strong&gt; Acts as the centralized Identity Provider (IdP) for the system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Gateway:&lt;/strong&gt; Centralizes the logic of authentication and apply rate limits and timeouts for requests.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/mazenaly256/Cinema-Seat-Reservation-System" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;





&lt;h2&gt;
  
  
  System Overview
&lt;/h2&gt;

&lt;p&gt;I have built a &lt;strong&gt;microservices-based&lt;/strong&gt; backend system, for handling seat reservations in a cinema, each service has its &lt;strong&gt;own database&lt;/strong&gt;. 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 &lt;strong&gt;API gateway&lt;/strong&gt; to be the single entry point for my whole system, building a basic &lt;strong&gt;CI&lt;/strong&gt; Pipeline using GitHub Actions, containerize the services and orchestrate between them via &lt;strong&gt;Docker Compose&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  Services
&lt;/h3&gt;

&lt;p&gt;&lt;u&gt;Movie Service:&lt;/u&gt; Responsible for CRUD operations on movies and showtimes, and enforces role-based access control.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Reservation Service:&lt;/u&gt; Responsible for handling seats availability checks and the logic of seats reservations and payment.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;Identity Service:&lt;/u&gt; Acts as the &lt;strong&gt;centralized Identity Provider&lt;/strong&gt; for the whole system, responsible for &lt;strong&gt;storing and managing users&lt;/strong&gt; and &lt;strong&gt;issuing JWT tokens&lt;/strong&gt; that are trusted across all the system.&lt;/p&gt;

&lt;p&gt;&lt;u&gt;API Gateway:&lt;/u&gt; The single entry point for the system, acting as an &lt;strong&gt;architectural AOP (Aspect-Oriented Programming) layer&lt;/strong&gt;. It &lt;strong&gt;centralizes cross-cutting concerns&lt;/strong&gt; 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 &lt;strong&gt;forwarding the requests to downstream services&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  System Architecture
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4j4liw4f8axc0chel2mg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4j4liw4f8axc0chel2mg.png" alt="Basic System Architecture Diagram" width="800" height="604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/mazenaly256/Cinema-Seat-Reservation-System/releases/tag/v3.0.0" rel="noopener noreferrer"&gt;GitHub Release&lt;/a&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

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

</description>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>backend</category>
    </item>
  </channel>
</rss>
