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

Coursera

CQRS, API Development, and Module Communication

Packt via Coursera

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Updated in May 2025. This course now 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. This course covers the implementation of CQRS (Command Query Responsibility Segregation) patterns and API development using MediatR for modular communication in .NET-based applications. You’ll learn how to structure applications using CQRS, focusing on the separation of read and write operations, and explore the integration of MediatR for handling commands and queries. With real-world examples, you will see how these patterns improve scalability and modularity in your applications. The journey begins with an introduction to CQRS and its role in managing complex systems by segregating commands and queries. You will learn how to implement CQRS logically and physically in your applications, utilizing MediatR to manage requests effectively. The course continues by exploring the development of catalog and basket modules, applying CQRS principles in real use cases, and handling domain events with MediatR’s INotificationHandler interface. As you progress, you will build REST APIs for catalog and basket modules using minimal APIs, Carter, and the REPR design pattern. You will also dive into handling cross-cutting concerns like validation, logging, and error handling, integrating them into your MediatR pipeline. Additionally, the course addresses caching strategies with Redis, providing a hands-on approach to optimizing performance in distributed systems. This course is designed for developers interested in building scalable, maintainable systems using modular monoliths with CQRS, MediatR, and minimal APIs. It is ideal for those looking to enhance their understanding of modular architecture and API development using .NET 8.

Syllabus

  • Application Use Case Development with CQRS and MediatR
    • In this module, we will dive into developing application use cases with CQRS and MediatR. You will learn how to structure commands and queries separately to streamline processing, implement MediatR for command and query handling, and create abstractions that enhance modularity and clarity in your workflows.
  • Catalog Application Use Case Development with CQRS and MediatR
    • In this module, we will explore how to apply CQRS and MediatR for developing catalog module use cases. You will learn how to create and organize CQRS components, including handling commands and queries for product data, and using MediatR for efficient request processing in the catalog module.
  • Develop Catalog API Endpoints Expose Minimal API Endpoints with Carter and REPR
    • In this module, we will focus on building lightweight and efficient catalog API endpoints using minimal APIs with Carter. You will learn how to expose essential product operations through RESTful APIs while adhering to CQRS patterns and utilizing the REPR design pattern for optimized request handling.
  • Develop Cross-cutting Concerns for Catalog and Each Module in EShop Modules
    • In this module, we will explore how to manage cross-cutting concerns such as validation, exception handling, and logging in modular applications. You will learn to integrate Fluent Validation, automate validation in MediatR pipelines, and implement structured logging and global exception handling to enhance the application's reliability and maintainability.
  • Develop Basket Module with Vertical Slice Architecture and CQRS
    • In this module, we will focus on developing the basket module using vertical slice architecture and CQRS. You will learn how to design domain models for the shopping cart, structure commands and queries efficiently, and implement CQRS patterns for handling operations related to the basket module.
  • Develop Basket Data-Infrastructure with EF Core Code First and PostgreSQL
    • In this module, we will explore the process of setting up EF Core with PostgreSQL for the basket module. You will learn how to apply the code-first approach to create the database schema, implement migrations, and configure EF Core mappings to persist domain models into PostgreSQL efficiently.
  • Develop Basket Application Use Case Development with CQRS and MediatR
    • In this module, we will focus on developing use cases for the basket module using CQRS and MediatR. You will learn how to implement commands and queries for basket operations, structure the folder architecture for better organization, and leverage MediatR to handle requests effectively within the application.
  • Develop Basket API Endpoints Exposing Minimal API Endpoints with Carter and REPR
    • In this module, we will develop minimal API endpoints for the basket module using Carter. You will learn how to expose essential basket operations through RESTful APIs, integrate CQRS and VSA patterns, and optimize API request processing for better performance and scalability.
  • Develop Distributed Caching with Redis in Basket Module
    • In this module, we will explore how to implement Redis as a distributed cache in the basket module. You will learn how to optimize data retrieval using the cache-aside pattern, configure Redis within the application, and manage cache invalidation for better performance and consistency.
  • Sync Communications Between Modules with In-Process Method Calls (Public APIs)
    • In this module, we will explore how to handle synchronous communication between modules using in-process public APIs. You will learn to set up shared contracts, implement communication patterns across modules, and test the synchronization of data between different components in your application.

Taught by

Packt - Course Instructors

Reviews

Start your review of CQRS, API Development, and Module Communication

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.