Tutorialspoint

This Black Friday, Get lowest Price Ever! Use: BFS8

Design Microservices Architecture with Patterns & Principles

person icon Mehmet Özkaya

4.5

Design Microservices Architecture with Patterns & Principles

Evolve from Monolithic to Event-driven Microservices Architecture with designing High Scalable and High Available system

updated on icon Updated on Sep, 2024

language icon Language - English

person icon Mehmet Özkaya

English [CC]

category icon Development ,Software Engineering,Microservices

Lectures -293

Duration -17 hours

Lifetime Access

4.5

price-loader

Lifetime Access

30-days Money-Back Guarantee

Training 5 or more people ?

Get your team access to 10000+ top Tutorials Point courses anytime, anywhere.

Course Description

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

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

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

We will start the basics of software architecture by designing an e-commerce Monolithic architecture that handles a low amount of requests.

After that step by step, the architecture will;

  • Layered Architecture

  • Clean Architecture

  • Modular Monolithic Architecture

  • Microservices

  • Event-Driven Microservices Architectures

  • lastly Serverless Microservices Architectures with designed together that handle millions of requests. This is a step-by-step process for software system design and evolves from monolithic to microservices following the patterns & principles.

We will discuss microservices architectures with all aspects,

  • Microservices Decomposition

  • Microservices Communications (Sync / Async Message-Based Communication, API Gateways)

  • Microservices Data Management (Databases / Query / Commands)

  • Microservices Transaction Management

  • Microservices Distributed Caching

  • Microservices Deployments with Containers and Orchestrators

  • Microservices Resilience

with applying microservices design patterns and practices.

We are going to design together and step by step with refactoring architectures with all aspects of microservices pillars.

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

Way of Learning — The Course Flow

We will always start with the problem and try to solve this problem by learning and designing new architectures, patterns and best practices.

  • Problem -> Learn -> Design -> Adapt -> Evaluate

We will complete this circle for every section of the course. You will find that we will add new requirements in order to handle millions of requests and learn new patterns and practices that will use these principles when evolving architectures.


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

We will see full of patterns and the principle toolbox is loading with new patterns and applying them to current designs. We will see the latest patterns that we use more than 30 patterns and practices with implementing high scalability, high availability and handling millions of request requirements.

Let me write some microservices patterns that we covered in this course;

  • The Database-per-Service Pattern

  • API Gateway Pattern, Gateway Routing/Aggregation/Offloading Pattern

  • Backends for Frontends pattern BFF

  • Service Aggregator Pattern, Service Registry/Discovery Pattern

  • Fan-out Publish/Subscribe Messaging Pattern

  • Topic-Queue Chaining & Load Balancing Pattern

  • The Shared Database Anti-Pattern and Polyglot Persistence

  • Database Sharding Pattern, CAP Theorem

  • Materialized View Pattern

  • CQRS and Event Sourcing Patterns

  • SAGA Pattern — Choreography-based/Orchestration-based SAGA

  • Compensating Transaction Pattern

  • Transactional Outbox Pattern

  • Dual Write Problem

  • CDC — Change Data Capture with Outbox Pattern

  • Event Hubs and Real-time Event Streaming in Event-Driven Microservices Architecture

  • Cache-Aside Pattern for Microservices Distributed Caching

  • Sidecar Pattern

  • Service Mesh Pattern

  • DevOps and CI/CD Pipelines for Microservices Deployments

  • Deployment Strategies for Microservices: Blue-green, Rolling and Canary deployments

  • Infrastructure as Code (IaC) and usage in Microservices Deployments

  • Microservices Resilience, Observability and Monitoring Patterns

  • Retry and Circuit Breaker Patterns

  • Bulkhead / Timeout / Cache / Fallback Patterns

  • Elastic Stack for Microservices Observability with Distributed Logging

  • Microservices Health Checks: Liveness, Readiness and Performance Checks

  • Serverless Microservices Architecture implementation on AWS

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

  • We will always start with a business problem

  • 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 by applying this newly learned pattern together

  • And lastly, we will decide which Technologies can be choices for that architecture.

In the last section, we will make a Code Review for Existing Microservices Architecture Repository on GitHub for practical implementation of microservices architecture.

So this course will include

  • 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 millions 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 joined several famous company's architecture position interviews, also been involved software architect position assessment process with more than 50+ interviews collecting the architecture requirements for software industry positions.

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

This course is prepared for the beginner but at least you should be familiar with the 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.

Goals

  • Learn how to handle millions of requests by designing a system for high availability, high scalability, low latency, and resilience to network failures on microservices distributed architectures with real-world example projects.

Prerequisites

  • Software Architecture Basics
Design Microservices Architecture with Patterns & Principles

Curriculum

Check out the detailed breakdown of what’s inside the course

Course Introduction
5 Lectures
  • play icon Introduction 07:52 07:52
  • play icon Architecture Design Journey - Evolution of Architectures 03:17 03:17
  • play icon Way of Learning - The Course Flow 05:06 05:06
  • play icon Choosing the Right Architecture for your Application 05:14 05:14
  • play icon How to Follow the Course & Course Slides 02:45 02:45
Understand E-Commerce Domain
3 Lectures
Tutorialspoint
Monolithic Architecture
9 Lectures
Tutorialspoint
Layered (N-Layer) Architecture
8 Lectures
Tutorialspoint
Clean Architecture
10 Lectures
Tutorialspoint
Scalability - Vertical Scaling - Horizontal Scaling
9 Lectures
Tutorialspoint
Modular Monolithic Architecture
18 Lectures
Tutorialspoint
Microservices Architecture
14 Lectures
Tutorialspoint
Decomposition of Microservices Architecture
12 Lectures
Tutorialspoint
Microservices Communications - The Basics
31 Lectures
Tutorialspoint
Microservices Communication Patterns - API Gateways
22 Lectures
Tutorialspoint
Microservices Asynchronous Message-Based Communication
14 Lectures
Tutorialspoint
[OPTIONAL] Kafka and RabbitMQ Architectures
10 Lectures
Tutorialspoint
Scale the Microservices Architecture Design
3 Lectures
Tutorialspoint
Microservices Data Management - Choosing Right Database
22 Lectures
Tutorialspoint
Microservices Data Management - Commands and Queries
17 Lectures
Tutorialspoint
Microservices Distributed Transactions
22 Lectures
Tutorialspoint
Event-Driven Microservices Architectures
9 Lectures
Tutorialspoint
Microservices Distributed Caching
11 Lectures
Tutorialspoint
Microservices Deployments with Containers and Orchestrators
21 Lectures
Tutorialspoint
Microservices Resilience, Observability and Monitoring
17 Lectures
Tutorialspoint
DEMO: E-commerce Implementation of Microservices Architecture
9 Lectures
Tutorialspoint
Serverless Microservices Architecture
6 Lectures
Tutorialspoint

Instructor Details

Mehmet Özkaya

Mehmet Özkaya

Creator of GitHub aspnetrun and awsrun repositories

I have been 15+ years working experience on Software Development Industry as a Software/Solutions Architect positions at global companies.

Focused on Microservices Architectures on .NET, AWS  and Azure ecosystems.

Developed microservices repositories on GitHub and create courses from real-world applications.

Also create courses about Designing Software Architectures for Cloud-Native and Serverless Event-driven Microservices.

I have regularly develop on GitHub, blog on Medium.

Course Certificate

Use your certificate to make a career change or to advance in your current career.

sample Tutorialspoint certificate

Our students work
with the Best

Feedbacks

M

Martin Rauch

This course is great! It discribes the full complexity of microservice architectures and the problems with it. The content, the implementation patterns and the teaching method are really very helpfull.

Related Video Courses

View More

Annual Membership

Become a valued member of Tutorials Point and enjoy unlimited access to our vast library of top-rated Video Courses

Subscribe now
Annual Membership

Online Certifications

Master prominent technologies at full length and become a valued certified professional.

Explore Now
Online Certifications

Talk to us

1800-202-0515