Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Microservices Design, Communication, and Data Handling

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course features Coursera Coach! A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course. In this comprehensive course on microservices, you will learn the key concepts and techniques required to design, communicate, and manage data effectively in microservices architectures. The course walks you through decomposition patterns, communication styles, and database management strategies. You'll explore how to break down monolithic systems into modular microservices, with an emphasis on scalability, fault tolerance, and performance. Key decomposition patterns like business capabilities, subdomains, and Domain-Driven Design (DDD) will help you structure your microservices effectively. The course covers various communication methods, from synchronous and asynchronous to RESTful APIs, GraphQL, and gRPC. You’ll learn when to use each communication style, how to design APIs, and how to address common challenges like API versioning, inter-service communication, and network traffic load. Additionally, we will explore advanced communication patterns with API gateways and asynchronous messaging, helping you optimize the flow of information across your system. Ideal for software architects, developers, and engineers, this course will teach you how to design scalable and resilient microservices architectures, covering everything from foundational principles to the most advanced practices. This course is best suited for those looking to refine their understanding of microservices and gain the skills to build high-performance distributed systems. The course does not require previous experience in microservices, but a basic understanding of software architecture and design patterns will be helpful.

Syllabus

  • Decomposition of Microservices Architecture
    • In this module, we will explore strategies for breaking down a monolithic system into smaller, manageable microservices. You will learn about decomposition patterns like business capabilities, subdomains, and Domain-Driven Design (DDD) principles to effectively map your system’s architecture. By the end, you'll be equipped with the tools to design a modular, scalable microservices architecture.
  • Microservices Communications - The Basics
    • In this module, we will cover the fundamentals of microservices communication, exploring the challenges and strategies for effective message passing. You will compare synchronous and asynchronous communication, delve into RESTful API design, and learn best practices for creating scalable and maintainable APIs to ensure smooth service interaction.
  • Microservices Communication Patterns - API Gateways
    • In this module, we will focus on the importance of API gateways in managing communication between microservices. You’ll explore various API gateway patterns and understand how they can optimize scalability, security, and reliability. This module will provide the foundational knowledge needed to design a robust and efficient microservices architecture.
  • Microservices Asynchronous Message-Based Communication
    • In this module, we will explore the power of asynchronous communication to improve microservices scalability and fault tolerance. You’ll dive into message-based communication patterns such as publish-subscribe and event sourcing, learning how to apply them to create loosely coupled services and more resilient systems.
  • (Optional) Kafka and RabbitMQ Architectures
    • In this optional module, we will introduce Apache Kafka and RabbitMQ as messaging systems for microservices communication. You'll compare their architectures, strengths, and ideal use cases. By the end of the module, you'll know how to integrate these tools into a microservices architecture to facilitate reliable, real-time messaging.
  • Scale the Microservices Architecture Design
    • In this module, we will focus on how to scale your microservices architecture for optimal performance and resilience. You will learn about the Scale Cube model and how to apply horizontal, functional, and data partitioning strategies to achieve scalable systems. This module will provide essential insights into scaling both stateless and stateful microservices.
  • Microservices Data Management - Choosing Right Database
    • In this module, we will explore data management strategies for microservices, focusing on how to choose the right database based on service needs. You'll examine patterns like polyglot persistence, the database-per-service pattern, and learn when to use relational vs. NoSQL databases for optimal performance and scalability.
  • Microservices Data Management - Commands and Queries
    • In this module, we will focus on data management patterns in microservices, particularly the separation of commands and queries. You will explore CQRS for optimized data handling and event sourcing for consistency. By the end of the module, you will have a deeper understanding of how to manage data flow efficiently in a distributed system.

Taught by

Packt - Course Instructors

Reviews

Start your review of Microservices Design, Communication, and Data Handling

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.