Design Microservices Architecture with Patterns & Principles

Handle millions of request with designing high scalable and high available systems on microservices architecture.

In this course, we’re going to learn how to Design Microservices Architecture with using Design Patterns, Principles and the Best Practices. We will using the right architecture design patterns and techniques.

What you’ll learn

  • Design Microservices Architecture with using Design Patterns, Principles and the Best Practices.
  • Learn how to handle millions of request with designing system for high availability, high scalability, low latency, and resilience to network failures.
  • Journey of software architecture design.
  • Step by step evolving architecture monolithic to event driven microservices.
  • Designing e-commerce monolithic – Layered – SOA – Microservices – Event-Driven Architecture.
  • Microservices Decomposition Strategies.
  • Microservices Communications (Sync / Async Message-Based Communication, API Gws).
  • Microservices Data Management (Databases / Query / Commands / Distributed Transactions).
  • Microservices Distributed Caching.
  • Microservices Deployments with Containers and Orchestrators.
  • Microservices Design Patterns and Best Practices.
  • The Database-per-Service Pattern, Api Gateway Pattern, Backends for Frontends pattern BFF.
  • Service Aggregator Pattern, Service Registry Pattern.
  • CQRS and Event Sourcing Patterns, Eventual Consistency Principle, CAP Theorem.
  • Materialized View Pattern, Publish–Subscribe Pattern, Database Sharding Pattern.
  • Saga Pattern, Outbox Pattern.
  • Code Review for Existing Microservices Architecture Repository on GitHub.
  • Hands-on Design Activities, Iterate Design Architecture from On-Premises to Cloud Serverless architectures.
  • Evolves architecture monolithic to event-driven microservices architectures.
  • Refactoring System Design for handling million of requests.
  • Prepare for Software Architecture Interviews.
  • Prepare for System Design Architecture Interviews.

Course Content

  • Introduction –> 6 lectures • 25min.
  • Monolithic Architecture –> 11 lectures • 41min.
  • Scalability – Vertical Scaling – Horizontal Scaling –> 7 lectures • 28min.
  • Layered (N-Layer) Architecture –> 5 lectures • 21min.
  • Service-Oriented Architecture (SOA) –> 5 lectures • 18min.
  • Microservices Architecture –> 12 lectures • 50min.
  • Decomposition Microservices Architecture – Understand E-Commerce Domain –> 9 lectures • 30min.
  • Microservices Communications – Basics –> 13 lectures • 41min.
  • Microservices Communication Design Patterns – API Gateways –> 13 lectures • 56min.
  • Microservices Asynchronous Message-Based Communication –> 6 lectures • 28min.
  • Kafka and RabbitMQ Architecture –> 8 lectures • 34min.
  • Scale the Microservices Architecture Design –> 3 lectures • 15min.
  • Microservices Data Management –> 11 lectures • 1hr 9min.
  • Microservices Data Management – Queries –> 9 lectures • 52min.
  • Microservices Distributed Transactions –> 4 lectures • 21min.
  • Event-Driven Microservices Architecture –> 2 lectures • 17min.
  • Microservices Distributed Caching –> 2 lectures • 8min.
  • Microservices Deployments with Containers and Orchestrators –> 7 lectures • 17min.
  • Implementation of Microservices Architecture –> 2 lectures • 24min.
  • Thanks –> 1 lecture • 1min.

Design Microservices Architecture with Patterns & Principles

Requirements

  • Software Architecture Basics.

In this course, we’re going to learn how to Design Microservices Architecture with using Design Patterns, Principles and the Best Practices. We will using the right architecture design patterns and techniques.

By the end of the course, you will Learn how to handle millions of request with designing system for high availability, high scalability, low latency, and resilience to network failures on microservices distributed architectures.

This course is will be the journey of software architecture design with step by step evolving architecture monolithic to event driven microservices.

We will start the basics of software architecture with designing e-commerce monolithic architecture that handles low amount of requests.

After that step by step evolves the architecture with

  • Layered Architecture
  • SOA
  • Microservices
  • and lastly Event Driven Microservices Architectures with designing together that handle millions of requests.

We will discuss microservices architectures with all aspects,

  • Microservices Decomposition
  • Microservices Communications (Sync / Async Message-Based Communication, API Gws)
  • Microservices Data Management (Databases / Query / Commands / Distributed Transactions)
  • Microservices Distributed Caching
  • Microservices Deployments with Containers and Orchestrators

with applying microservices design patterns and practices.

We are going to design with together and step by step with our drawing tool that we will use this designing architectures.

We will start with designing Monolithic Architecture. And you can see that we have Functional and Non-functional requirements that should cover our design and we have patterns and principles toolbox that we will learn and use these principles when evolving architectures.

You will find that we will add new requirements in order to handle millions of request and learn new patterns and practices that will use these principles when evolving architectures.

  • Layered Architecture
  • SOA
  • Microservices Architectures
  • Microservices Architectures API Gws
  • Microservices Architectures API Gws – BFF
  • Microservices Architecture – Service Aggregator / Registry Patterns
  • Microservices Architecture – Message Broker
  • Microservices Architecture – Database Sharding Cassandra
  • Event-Driven Microservices Architecture
  • Microservices Distributed Caching
  • Microservices Containers and Orchestrators

We will see full of patterns and principle toolbox is loading with new patterns and apply them into current designs. We will see latest patterns that we use more than 30 patterns and practices with implementing High scalability, High availability and handle millions of request requirements.

Let me write some microservices pattern which we covered in this courses;

  • The Database-per-Service Pattern
  • API Gateway Pattern
  • Backends for Frontends pattern BFF
  • Service Aggregator Pattern, Service Registry Pattern
  • CQRS and Event Sourcing Patterns
  • Materialized View Pattern
  • Publish–Subscribe Pattern
  • Database Sharding Pattern
  • Saga Pattern
  • Outbox Pattern

and so on..

So the course flow will be the both theoretical and practical information;

  • We will learn a specific pattern, why and where we should use
  • After that we will see the Reference architectures that applied these patterns
  • After that we will design our architecture with applying this newly learned pattern with together
  • And lastly we will decide which Technologies can be choices for that architectures.

And at the last section, we will made Code Review for Existing Microservices Architecture Repository on GitHub for practical implementation of microservices architecture.

So this course will includes

  • Hands-on Design Activities
  • Iterate Design Architecture from On-Premises to Cloud Server-less architectures
  • Evolves architecture monolithic to Event-Driven Microservices Architectures
  • Refactoring System Design for handling million of requests
  • Apply best practices with microservices design patterns and principles
  • Examine microservices patterns with all aspects like Communications, Data Management, Caching and Deployments
  • Prepare for Software Architecture Interviews
  • Prepare for System Design Architecture Interview exams.

I have been joined several famous company’s architecture position interviews, also involved software architect positions assessment process more than 50+ interviews collect the architecture requirements for software industry positions.

So with this course, you will gain real-world experience about all architecture positions from monolithic to event-driven microservices architectures.

This course prepared for the beginner but at least you should familiar with basics of software architectures. This course will have good theoretical information but also will be 90% of hands-on design activities. All course architecture steps will designed step by step and together.

I hope you’ll join me on this journey and develop this project with me.