\relax \providecommand\hyper@newdestlabel[2]{} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} \bibstyle{alpha} \providecommand \babel@aux [2]{\global \let \babel@toc \@gobbletwo } \@nameuse{bbl@beforestart} \babel@aux{english}{} \citation{fowler2014microservices} \citation{richardson2018microservices} \citation{evans2003domain} \citation{shekhar2024microservices} \citation{walia2025leveraging} \@writefile{toc}{\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{intro}{{1}{1}{Introduction}{chapter.1}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.1}Background: The Ascendancy of Microservices in Distributed System Design}{1}{section.1.1}\protected@file@percent } \newlabel{sec:ch1sec1}{{1.1}{1}{Background: The Ascendancy of Microservices in Distributed System Design}{section.1.1}{}} \citation{nygard2018release} \@writefile{toc}{\contentsline {section}{\numberline {1.2}Problem Statement: The Intrinsic Scalability and Fault Tolerance Imperatives in Microservice Ecosystems}{2}{section.1.2}\protected@file@percent } \newlabel{sec:ch1sec2}{{1.2}{2}{Problem Statement: The Intrinsic Scalability and Fault Tolerance Imperatives in Microservice Ecosystems}{section.1.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.3}Research Objectives and Guiding Questions}{2}{section.1.3}\protected@file@percent } \newlabel{sec:ch1sec3}{{1.3}{2}{Research Objectives and Guiding Questions}{section.1.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.4}Contributions of the Thesis}{3}{section.1.4}\protected@file@percent } \newlabel{sec:ch1sec4}{{1.4}{3}{Contributions of the Thesis}{section.1.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {1.5}Thesis Structure}{4}{section.1.5}\protected@file@percent } \newlabel{sec:ch1sec5}{{1.5}{4}{Thesis Structure}{section.1.5}{}} \citation{fowler2014microservices} \citation{richardson2018microservices} \@writefile{toc}{\contentsline {chapter}{\numberline {2}Theoretical Foundations of Microservices for Resilient and Scalable Systems}{6}{chapter.2}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chap:ch1}{{2}{6}{Theoretical Foundations of Microservices for Resilient and Scalable Systems}{chapter.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {2.1}Defining Microservice Architecture: A Paradigm for Distributed Functionality}{6}{section.2.1}\protected@file@percent } \newlabel{sec:microservice-architecture}{{2.1}{6}{Defining Microservice Architecture: A Paradigm for Distributed Functionality}{section.2.1}{}} \citation{shekhar2024microservices} \citation{baboi2019dynamic} \@writefile{toc}{\contentsline {section}{\numberline {2.2}Core Characteristics Enabling (and Complicating) Scalability and Fault Tolerance}{7}{section.2.2}\protected@file@percent } \citation{walia2025leveraging} \citation{makungu2023fault} \@writefile{toc}{\contentsline {section}{\numberline {2.3}Advantages and Disadvantages in Distributed Contexts}{8}{section.2.3}\protected@file@percent } \newlabel{sec:advantages-disadvantages}{{2.3}{8}{Advantages and Disadvantages in Distributed Contexts}{section.2.3}{}} \citation{richardson2018microservices} \citation{richardson2018microservices} \@writefile{lot}{\contentsline {table}{\numberline {2.1}{\ignorespaces Comparative Overview of Microservices and Monolithic Architectures \cite {richardson2018microservices}}}{9}{table.2.1}\protected@file@percent } \newlabel{tab:microservices-vs-monolithic}{{2.1}{9}{Comparative Overview of Microservices and Monolithic Architectures \cite {richardson2018microservices}}{table.2.1}{}} \citation{kubernetes2025horizontal} \citation{burns2016borg} \@writefile{toc}{\contentsline {chapter}{\numberline {3}Design Patterns and Strategies for Scalability in Microservices}{10}{chapter.3}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chap:ch3}{{3}{10}{Design Patterns and Strategies for Scalability in Microservices}{chapter.3}{}} \@writefile{toc}{\contentsline {section}{\numberline {3.1}Vertical Scaling}{10}{section.3.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.2}Horizontal Scaling}{10}{section.3.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3.3}Load Balancing Techniques and the Pivotal Role of API Gateways}{11}{section.3.3}\protected@file@percent } \citation{rabbitmq2025messaging} \@writefile{toc}{\contentsline {section}{\numberline {3.4}Asynchronous Processing and Message Queues for Decoupled Scaling}{12}{section.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{\numberline {4}Design Patterns and Strategies for Fault Tolerance in Microservices}{14}{chapter.4}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chap:ch3}{{4}{14}{Design Patterns and Strategies for Fault Tolerance in Microservices}{chapter.4}{}} \citation{nygard2018release} \citation{polly2025dotnet} \citation{makungu2023fault} \citation{ibrahim2022scalable} \@writefile{toc}{\contentsline {section}{\numberline {4.1}The Circuit Breaker Pattern: Preventing Cascading Failures}{15}{section.4.1}\protected@file@percent } \citation{polly2025dotnet} \citation{polly2025dotnet} \citation{shekhar2024microservices} \citation{baboi2019dynamic} \@writefile{toc}{\contentsline {section}{\numberline {4.2}Retry Mechanisms}{16}{section.4.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {4.3}The Bulkhead Pattern: Isolating Resources for Fault Containment}{16}{section.4.3}\protected@file@percent } \@writefile{toc}{\contentsline {chapter}{\numberline {5}Building applications with Microservices Architecture in .NET}{18}{chapter.5}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chap:ch4}{{5}{18}{Building applications with Microservices Architecture in .NET}{chapter.5}{}} \@writefile{toc}{\contentsline {section}{\numberline {5.1}Architectural Overview}{18}{section.5.1}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces The microservice architecture for the e-commerce application. It demonstrates a vertical flow from the API Gateway to the services, which use a shared database. Asynchronous communication via RabbitMQ and resilient inter-service calls with Polly are key features for fault tolerance.}}{19}{figure.5.1}\protected@file@percent } \newlabel{fig:architecture}{{5.1}{19}{The microservice architecture for the e-commerce application. It demonstrates a vertical flow from the API Gateway to the services, which use a shared database. Asynchronous communication via RabbitMQ and resilient inter-service calls with Polly are key features for fault tolerance}{figure.5.1}{}} \citation{kubernetes2025horizontal} \citation{baboi2019dynamic} \citation{rabbitmq2025messaging} \@writefile{toc}{\contentsline {section}{\numberline {5.2}Implementing Scalability}{20}{section.5.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Service-Level Scalability with Kubernetes}{20}{subsection.5.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Asynchronous Communication with RabbitMQ}{20}{subsection.5.2.2}\protected@file@percent } \citation{polly2025dotnet} \citation{polly2025dotnet} \@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces A horizontally oriented view of the Kubernetes autoscaling mechanism. Incoming traffic is directed by the Kubernetes Service to the Deployment, which manages a scalable set of Pods. The Horizontal Pod Autoscaler (HPA) forms a control loop below: it receives metrics from the Pods via the Metrics Server and adjusts the number of replicas in the Deployment accordingly.}}{21}{figure.5.2}\protected@file@percent } \newlabel{fig:hpa_mechanism_horizontal}{{5.2}{21}{A horizontally oriented view of the Kubernetes autoscaling mechanism. Incoming traffic is directed by the Kubernetes Service to the Deployment, which manages a scalable set of Pods. The Horizontal Pod Autoscaler (HPA) forms a control loop below: it receives metrics from the Pods via the Metrics Server and adjusts the number of replicas in the Deployment accordingly}{figure.5.2}{}} \@writefile{toc}{\contentsline {section}{\numberline {5.3}Resilient Communication with Polly}{21}{section.5.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}The Retry Pattern}{21}{subsection.5.3.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}The Circuit Breaker Pattern}{22}{subsection.5.3.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}Fault Tolerance with Kubernetes}{22}{subsection.5.3.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}Message Durability with RabbitMQ}{22}{subsection.5.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {5.4}Observability: Metrics and Monitoring}{22}{section.5.4}\protected@file@percent } \citation{prometheus2025monitoring} \citation{grafana2025open} \citation{prometheus2025monitoring} \citation{grafana2025open} \@writefile{toc}{\contentsline {section}{\numberline {5.5}Application User Interface and Workflow}{23}{section.5.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.5.1}Customer-Facing Storefront}{23}{subsection.5.5.1}\protected@file@percent } \citation{stripe2025online} \citation{stripe2025online} \citation{stripe2025online} \@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Product catalog view, showcasing products in a grid layout with an "Add to Cart" button and a persistent Shopping Cart module on the right.}}{24}{figure.5.3}\protected@file@percent } \newlabel{fig:product_catalog}{{5.3}{24}{Product catalog view, showcasing products in a grid layout with an "Add to Cart" button and a persistent Shopping Cart module on the right}{figure.5.3}{}} \@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Shopping Cart view, showing selected products with quantities, prices, and a total cost. The "Proceed to Checkout" button is highlighted at the bottom.}}{25}{figure.5.4}\protected@file@percent } \newlabel{fig:shopping_cart}{{5.4}{25}{Shopping Cart view, showing selected products with quantities, prices, and a total cost. The "Proceed to Checkout" button is highlighted at the bottom}{figure.5.4}{}} \@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Stripe Payment Page, displaying a final order summary on the left and a secure form for entering payment details on the right. \cite {stripe2025online}}}{25}{figure.5.5}\protected@file@percent } \newlabel{fig:stripe_payment}{{5.5}{25}{Stripe Payment Page, displaying a final order summary on the left and a secure form for entering payment details on the right. \cite {stripe2025online}}{figure.5.5}{}} \@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Inventory Dashboard, displaying a table of products with options to edit, delete, or add new products. Each product row includes a photo, name, description, price, and quantity.}}{26}{figure.5.6}\protected@file@percent } \newlabel{fig:inventory_dashboard}{{5.6}{26}{Inventory Dashboard, displaying a table of products with options to edit, delete, or add new products. Each product row includes a photo, name, description, price, and quantity}{figure.5.6}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.5.2}Administrative Interface}{26}{subsection.5.5.2}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Edit Product Modal, allowing administrators to modify product details. The form is pre-populated with existing data, and changes can be saved or canceled.}}{27}{figure.5.7}\protected@file@percent } \newlabel{fig:edit_product}{{5.7}{27}{Edit Product Modal, allowing administrators to modify product details. The form is pre-populated with existing data, and changes can be saved or canceled}{figure.5.7}{}} \citation{locust2025load} \@writefile{toc}{\contentsline {chapter}{\numberline {6}Results and Discussion}{28}{chapter.6}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{chap:results}{{6}{28}{Results and Discussion}{chapter.6}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.0.1}Results}{28}{subsection.6.0.1}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {6.1}{\ignorespaces Requests per Second (RPS) during the 30-minute load test.}}{28}{figure.6.1}\protected@file@percent } \newlabel{fig:rps}{{6.1}{28}{Requests per Second (RPS) during the 30-minute load test}{figure.6.1}{}} \@writefile{lof}{\contentsline {figure}{\numberline {6.2}{\ignorespaces Response times during the 30-minute load test, showing median and 95th percentile latencies.}}{29}{figure.6.2}\protected@file@percent } \newlabel{fig:response_time}{{6.2}{29}{Response times during the 30-minute load test, showing median and 95th percentile latencies}{figure.6.2}{}} \@writefile{lof}{\contentsline {figure}{\numberline {6.3}{\ignorespaces Number of users during the 30-minute load test, showing a stable count of 10 concurrent users.}}{29}{figure.6.3}\protected@file@percent } \newlabel{fig:number_of_users}{{6.3}{29}{Number of users during the 30-minute load test, showing a stable count of 10 concurrent users}{figure.6.3}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {6.0.2}Discussion}{29}{subsection.6.0.2}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {6.4}{\ignorespaces CPU usage of the InventoryService pod during the 30-minute load test, showing sustained maximum utilization.}}{29}{figure.6.4}\protected@file@percent } \newlabel{fig:cpu_usage}{{6.4}{29}{CPU usage of the InventoryService pod during the 30-minute load test, showing sustained maximum utilization}{figure.6.4}{}} \@writefile{lof}{\contentsline {figure}{\numberline {6.5}{\ignorespaces Memory usage of the InventoryService pod during the 30-minute load test, showing stable memory consumption.}}{30}{figure.6.5}\protected@file@percent } \newlabel{fig:memory_usage}{{6.5}{30}{Memory usage of the InventoryService pod during the 30-minute load test, showing stable memory consumption}{figure.6.5}{}} \@writefile{toc}{\contentsline {chapter}{\numberline {7}Conclusion and Future Research Directions}{31}{chapter.7}\protected@file@percent } \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} \newlabel{conclusions}{{7}{31}{Conclusion and Future Research Directions}{chapter.7}{}} \@writefile{toc}{\contentsline {section}{\numberline {7.1}Summary of Key Findings and Contributions}{31}{section.7.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {7.2}Limitations of the Study}{32}{section.7.2}\protected@file@percent } \citation{walia2025leveraging} \citation{makungu2023fault} \citation{gremlin2023chaos} \citation{baboi2019dynamic} \citation{ibrahim2022scalable} \bibdata{references} \@writefile{toc}{\contentsline {section}{\numberline {7.3}Future Research Directions}{33}{section.7.3}\protected@file@percent } \bibcite{burns2016borg}{BGO{$^{+}$}16} \bibcite{baboi2019dynamic}{BIG19} \bibcite{evans2003domain}{Eva03} \bibcite{fowler2014microservices}{FL14} \bibcite{grafana2025open}{{Gra}25} \bibcite{gremlin2023chaos}{{Gre}23} \bibcite{ibrahim2022scalable}{IA22} \bibcite{kubernetes2025horizontal}{{Kub}25} \bibcite{locust2025load}{{Loc}25} \bibcite{makungu2023fault}{Mak23} \bibcite{nygard2018release}{Nyg18} \bibcite{polly2025dotnet}{{Pol}25} \@writefile{toc}{\contentsline {chapter}{Bibliography}{34}{chapter*.2}\protected@file@percent } \bibcite{prometheus2025monitoring}{{Pro}25} \bibcite{rabbitmq2025messaging}{{Rab}25} \bibcite{richardson2018microservices}{Ric18} \bibcite{shekhar2024microservices}{She24} \bibcite{stripe2025online}{{Str}25} \bibcite{walia2025leveraging}{Wal25} \gdef \@abspage@last{41}