inflearn logo
inflearn logo

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.

(4.9) 16 reviews

422 learners

Level Basic

Course period Unlimited

Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns
Java
Java
Spring Cloud
Spring Cloud
Design Pattern
Design Pattern
MSA
MSA
patterns
patterns
날개 달린 동전

Recommend Course to grow and earn commission!

날개 달린 동전

Marketing Partners

Recommend Course to grow and earn commission!

Reviews from Early Learners

Reviews from Early Learners

4.9

5.0

하비하

13% enrolled

It was great for studying architecture.

5.0

무명펭 (힐링펭)

31% enrolled

It was very helpful.

5.0

dududu88

31% enrolled

I think this is the most practical MSA course that has been released so far, approaching it from a real-world perspective without any vague concepts. It would have been even better if the hands-on examples were structured with just a bit more detail, but it's excellent as it is. In that sense, if an advanced MSA course comes out with Dowon's version of detailed, practice-oriented content, I would take it without hesitation.

What you will gain after the course

  • Understanding Microservices Architecture

  • Understanding Microservices Architecture Patterns

  • Application of Patterns According to Microservice Design

You will learn about patterns in microservice architecture and apply them to your applications.

Now that you understand the concepts and structure of a basic microservices architecture, you can design and build a microservices application using the MSA patterns and service decisions required to build the application.

This is an essential course for all developers and architects who want to transform complex systems into flexible, scalable, and maintainable microservices architectures. Strengthen your core application development skills with this course!

  • Understand Monolithic and Microservice Architectures, understand the differences between large-scale monolithic architectures and microservices , and learn the pros and cons of each approach.

  • This article explains the steps required to transform a basic monolithic application into a microservices architecture, as well as the important points to consider.

  • MSA Design Principles: Covers the design principles of microservice architecture (MSA) to improve scalability and reliability. You will learn about core concepts such as domain separation, loose coupling, and independent deployment.

  • Through this lecture, you will understand the microservice architecture pattern suitable for the service type and the concepts required to apply the MSA pattern.

  • Learn MSA Core Patterns: You can study key MSA design patterns such as API Gateway , Service Discovery , and Saga patterns with real-world examples.


  • You can implement a virtual MSA example and practice the entire process required to get it running.

  • Here's a graph of the usage by major patterns in MSA:



I recommend this to these people

Who should take this course (1)

Those who want to learn about the architecture and applicable patterns for building applications in organizations considering introducing microservices through practical examples, with an understanding of the concept and scope of MSA

Who should take this course (2)

Backend developers who want to develop and maintain large-scale services through various MSA patterns and processing mechanisms that can be applied when configuring the Inner/Outer Architecture of MSA

Who should take this course (3)

Anyone who wants to learn more about data management and distributed transactions while developing microservice applications using Spring Boot + Spring Cloud

After class

  • You will understand the configuration, architecture, and patterns required to transform a monolithic application into an MSA application .

  • You will understand how to synchronize data required for MSA and how to process data in distributed transactions .

  • You will understand the architectures and patterns to consider when developing microservice applications, and how to apply various patterns.

  • Problem-solving skills can be improved by applying various design patterns of MSA to the appropriate situation.

  • When introducing MSA to existing projects or services, you will be able to draw a clear roadmap and design the deployment environment based on an understanding of DevOps culture and cloud infrastructure .

Features of this course

Understanding MSA Patterns by Service Type

This course will help you understand the differences and pros and cons between monolithic applications and microservice-based applications in terms of architecture and service, and learn about various MSA patterns, from microservice decomposition patterns to data communication and test strategies, by scenario and topic.

Implement a sample example that applies the MSA pattern

Based on 30 practical examples structured in a monolithic and microservices manner, you can gradually apply the MSA pattern that can be applied to services, and you can also learn about the process of deploying to cloud services.

Learn about these things

Types and Understanding of Microservice Architecture Patterns

You can learn step-by-step the structural situations and various patterns that must be considered when configuring services in the form of a microservice architecture, categorized into communication between services, asynchronous data processing methods, and data management perspectives.

Technologies and Application Methods for Distributed Transaction Processing

In addition to understanding CQRS, Event Sourcing, SAGA, and Event Driven Architecture, which must be considered for data management methods and distributed transaction processing in microservice architecture, you can learn about the process required for implementation through practical examples.

The MSA patterns covered in the lecture are:

  • 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.

Who created this course

  • Based on my 25 years of experience in IT, teaching, consulting, and development, I teach with explanations to help you understand my practical experience and know-how.

  • Based on a basic understanding and introduction to MSA, we cover understanding and application of microservice patterns that can upgrade your understanding of MSA to the next level.

  • This course explains MSA implementation and patterns, which are a continuation of the lectures "Developing RESTful Web Services using Spring Boot", "Developing Microservice Applications (MSA) with Spring Cloud", "Building a CI/CD Pipeline using Jenkins", and "Docker Virtualization Technology for DevOps (Private Harbor Registry)".

  • With the idea that "Knowledge in the head is not knowledge," I try to package my small experiences and knowledge well and explain them in a more understandable way. I think it will be a lecture that is easier to understand for those who are interested in Java and Spring Framework and extend to Cloud Native and Microservice Architecture.

Do you have any questions?

Q. What infrastructure configuration and practice environment are required to implement or run the source code covered in the lecture?

There are a total of 30 example codes used in the lecture, and as each section progresses, you can run them by modifying the code based on the content introduced in the section. All source codes were written using the Spring framework + Spring Boot based on the Java language. This is an example project with basic functions such as viewing a product list and purchasing, with the theme of a simple online shopping mall. To run the online shopping mall source, you can easily run it with debugging if you use JDK and an IDE such as Eclipse or IntelliJ in a Windows or MacOS environment, and if you can build and use a container virtualization environment such as Docker Desktop, you can run it based on the packaged container image. However, since you need to test while modifying part of the project by applying the MSA pattern, we recommend a practice environment using an IDE. Finally, the environment and SW required for the practice are summarized below.

  • Windows 10 or 11 or MacOS Intel chip version or Apple chip version

  • JDK 17+

  • IntelliJ IDEA (Community or Ultimate version)

  • Visual Studio Code

  • Postman

  • Chrome web browser

  • Docker Desktop

Q. I am trying to build an application or service with a microservice architecture. Do I have to apply design patterns?

You can choose the programming language or database used when developing IT-related applications or services. And based on the domain knowledge required for the work, it can be developed in various forms according to the developer's algorithm. I think that the business logic you want to implement can be implemented through the best method and efficient algorithm that the developer who implements it thinks of, rather than having a set process or process. However, there are already proven development methods, processes, or development types in numerous applications that have been developed in the same type of domain service. If you refer to these methods that have been developed in the past, you can implement the service in an efficient and proven way. Design Pattern is a way to accumulate design know-how discovered in the past software development process, name the method, and organize it into a specific convention that is easy to reuse later. This design pattern suggests standard solutions and naming methods for common problems in software design. In other words, it would be good to think of it as a "methodology for creating efficient code." In microservice architecture, various types of design patterns are presented, from service division to processing of distributed transactions, and applying these MSA design patterns will help you implement more efficient and stable services. In conclusion, not only in MSA but also in other SW development, application of design patterns is optional, but I think that properly applied design patterns will help you develop efficient and stable systems.

Q. Can I take the course without any knowledge of Spring Boot or Spring Cloud?

This lecture assumes that you have basic knowledge of MSA based on Spring Boot + Spring Cloud, and explains the MSA pattern. I think it is enough to study the MSA pattern even if you only understand the concept of Outer Architecture in MSA, or the process of handling basic CRUD (Create, Read, Update, Delete) tasks using JPA. However, in order to understand well how the existing monolithic application and the newly configured MSA application have been structured and applied, I think the learning effect can be doubled if you proceed with the lecture with a basic understanding of Spring Boot or Spring Cloud.

Things to note before taking the class

Practice environment

  • Operating System and Version (OS): Windows 10+, macOS Intell chip, macOS Apple chip, CentOS7+, Ubuntu 16.04+

  • Tools used: JDK 17+, Spring Boot, Spring Cloud, Visual Studio Code, Postman, Docker Desktop, IntelliJ Commnity (Ultimate recommended)

  • PC specifications: CPU i5+, RAM 16G+, Storage 50G+, Internet-enabled environment

Learning Materials

Player Knowledge and Notes

  • An understanding of Java programming and the ceremonial concepts of the Spring Framework will help you take the course.

  • You can run the example code used in the lecture as is, but some parts may need to be modified depending on the students' environment.

  • If you have any questions related to the lecture, please leave them on the bulletin board and we will respond as soon as we can.

  • The copyright of the lecture materials and source code related to the lecture belongs to the instructor, but if you need to use them, please indicate the source.

Recommended for
these people

Who is this course right for?

  • Developer who wants to develop microservice applications

  • Engineer who wants to design Microservices Architecture

  • A developer who wants to apply MSA patterns based on an understanding of MSA

Need to know before starting?

  • Java + Spring framework

  • Spring Boot

  • Spring Cloud

Hello
This is Dowon Lee

30,167

Learners

1,671

Reviews

1,373

Answers

4.8

Rating

8

Courses

I am an IT engineer. There was a time when I used to worry about which word to choose for the "occupation" field: "Office worker?", "Developer?", or "Instructor?". Then, I realized that the term "IT engineer" suited me best, and to this day, I still write "IT engineer" in that space.

I believe that a profession represents one's work, and that work should ideally be both enjoyable and helpful. While not everyone can live while doing exactly what they want, I am someone who loves the work I do and strives to excel at it. Having served in roles as a developer, instructor, and consultant, I often find myself rushing to keep up with the constant stream of new and evolving IT technologies; nevertheless, I am someone who wants to experience, disseminate, and utilize them even just a little bit sooner than others.

The field I have recently been interested in is online education consulting. My technical interests include Cloud Native Architecture, Blockchain, Machine Learning, Kafka, and Kubernetes. I am currently lecturing on these technologies and applying them to my work. However, because these are such vast subjects, I am still continuously studying them.

They say that what is only kept in one's head is not true knowledge. I aim to share my knowledge and experience through various methods. Furthermore, I will continue to be an IT engineer who constantly takes on challenges in new fields and new technologies.

 

 

  • Current) CEO of NJ One Company

  • Current) Adjunct Professor, Department of Information Security, Graduate School of International Affairs and Information Security, Dongguk University

  • Former) JP Morgan Chase AMJ Tech consultant (Japan)

  • Former) Senior Engineer, CMS Business Division, Samsung SDS

 

 

More

Curriculum

All

118 lectures ∙ (26hr 38min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

16 reviews

4.9

16 reviews

  • chhyunoh0376님의 프로필 이미지
    chhyunoh0376

    Reviews 2

    Average Rating 5.0

    5

    60% enrolled

    • insoftlearn15484님의 프로필 이미지
      insoftlearn15484

      Reviews 4

      Average Rating 4.0

      4

      31% enrolled

      • llilill님의 프로필 이미지
        llilill

        Reviews 10

        Average Rating 5.0

        5

        31% enrolled

        • dhk22님의 프로필 이미지
          dhk22

          Reviews 5

          Average Rating 5.0

          5

          100% enrolled

          • wlsdud8378378945님의 프로필 이미지
            wlsdud8378378945

            Reviews 7

            Average Rating 5.0

            5

            13% enrolled

            It was great for studying architecture.

            Dowon Lee's other courses

            Check out other courses by the instructor!

            Similar courses

            Explore other courses in the same field!

            Limited time deal ends in 1 days

            $81,680.00

            24%

            $84.70