Complete Guide to Microservices Design Patterns
This course explores MSA design patterns, implementation strategies, and various content crucial for microservice application development. You will acquire core knowledge and practical methods for successfully converting existing monolithic applications to MSA. You will analyze diverse design patterns underpinning microservice architecture, learning their suitable contexts and application methods.
435 learners
Level Basic
Course period Unlimited
The lecture on Design Patterns for Microservice Architecture is open.
Hello, this is Lee Do-won.
This time, we have opened a new Design Pattern lecture for Microservice Architecture.
After leaving behind the truly difficult and busy year of 2024, May of the new year of 2025 is already passing by.
There were a lot of things going on with my projects, lectures, and personal life, but I was able to open a lecture that I had been putting off for a long time.
Microservices Application (MSA) Developed with Spring Cloud
Building a CI/CD Pipeline Using Jenkins
Docker Virtualization Technology for DevOps (Private Harbor Registry)
Developing MSA applications using microservice design patterns
Following the lecture, I have prepared a lecture on design patterns required for building applications. When I first planned the lecture, "Developing Microservice Applications (MSA) with Spring Cloud," I planned to complete the basic lecture on Cloud Native and then develop a web service through design patterns and architectures that can be applied to practice as the next step, but it took longer than expected. However, I organized various patterns into several groups and opened the lecture, so I hope you will show a lot of interest.
In this lecture, we cover the following patterns:
API Gateway: A pattern that receives all client requests from a single entry point and handles authentication, logging, routing , etc. You can manage multiple microservices in one place.
Service Discovery: A pattern of registering and finding the locations of dynamically changing service instances in a central registry . This allows for automatic address discovery when communicating between services.
Synchronous & Asynchronous communication : Synchronous communication is a method in which the service that sent the request waits for a response, and the thread is blocked until the response comes. Synchronous communication can be implemented in the REST / gRPC / GraphQL API manner. Asynchronous communication is a method in which the service that sent the request proceeds with the next task immediately without waiting for a response, and communicates by publishing and subscribing to events through a message broker such as Kafka.
Circuit Breaker: A pattern that short-circuits calls to prevent a chain reaction of failures in a single service. When an external service is unavailable , calls are stopped for a certain period of time and fail-fast is achieved.
Fallback handling: This pattern provides alternative responses or retry logic as a fallback when circuit breakers, etc. are triggered. It increases the resilience of the system in the event of a partial failure.
Saga Pattern: A distributed transaction pattern for maintaining data consistency across distributed services. It links local transactions of each service with events/messages to ensure eventual consistency.
CQRS & Event Sourcing: CQRS (Command Query Responsibility Segregation) is a pattern that increases scalability by separating read and write models, and Event Sourcing is a pattern that stores state changes as event logs and restores the state based on history . They are used together to manage data for complex businesses.
EDA: Event Driven Architecture is a software architecture pattern that designs systems around the creation, detection, consumption, and use of events. It is the way in which components of microservice applications communicate and interact with each other through 'events'.
BFF (Backend for Frontend): A pattern that provides a specialized backend for each platform, such as web and mobile. It increases efficiency and development productivity by creating a dedicated API layer that meets the needs of each frontend.
Now, I'm going to update the content of the existing lectures, starting with the lecture "Developing Microservice Applications (MSA) with Spring Cloud" that I've been putting off for a while. It's been quite some time since I opened the lectures, and I've been thinking that I have to re-create them with the latest content, so I'm going to update them without delay.
Thank you again to those who have shown interest in the lecture. If you have any questions or feedback, please leave them and we will do our best to respond as quickly as possible.
thank you




