Welcome!

This site is a place where I share what I’ve learned about microservices architecture, from the basics to more advanced topics. It's a mix of insights from my studies, practical experiences, content from a dissertation I wrote, and summaries generated with the help of ChatGPT so take everything with a pinch of curiosity! Whether you're just getting started or exploring new aspects of microservices, I hope you’ll find something useful as I explore everything from service communication to data management and beyond.

Microservices Architecture

Microservices architecture is an approach to building software systems where complex applications are composed of small, independent services that communicate over well-defined APIs. This architectural style allows for greater flexibility and scalability compared to traditional monolithic systems. Each microservice is responsible for a specific business function and can be developed, deployed, and scaled independently of other services.

Microservices Patterns

  • Decompose by Business Capability - ...
  • Decompose by Subdomain - ...
  • Self-contained Service - ...

This category focus on the challenges of handling queries and transactions that span multiple services. It highlights the importance of ensuring properties like atomicity, consistency, isolation, and durability (ACID) in such transactions, which are not automatically guaranteed in a microservices environment. Therefore, specific approaches are required to maintain data consistency and reliability when working with distributed data across different services.

  • Transaction Outbox - ...
  • API Gateway - Central entry point for external clients.
  • Backend for Frontend (BFF) - Customizes API responses for different clients.
  • Service Registry - Centralized directory for service instances.
  • Self-registration and 3rd Party Registration - ...
  • Server-side Discovery - ...
  • Access Token - ...