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.
Explore the complete architecture of modular monoliths through hands-on development in .NET 8. You'll master Domain-Driven Design (DDD), CQRS, and scalable backend patterns, building a fully functional eShop from the ground up using modern development practices.
Start with architectural principles, progress through catalog, basket, and ordering modules, and understand both synchronous and asynchronous communication with real-world tools like RabbitMQ and Redis. Each concept is backed by practical code implementations and project-based learning.
Learn to containerize and orchestrate applications with Docker Compose, apply security with Keycloak, and ultimately migrate to microservices using strategies like the Strangler Fig pattern. The course is comprehensive and full of authentic development experience.
This course is ideal for backend developers, architects, and software engineers aiming to build modular, scalable systems. A working knowledge of C#, ASP.NET Core, and basic DDD concepts is recommended. Intermediate level.
Syllabus
- Course 1: Building Modular Monoliths with .NET 8
- Course 2: CQRS, API Development, and Module Communication
- Course 3: Event-Driven Systems, Security, and Microservices
Courses
-
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. In this course, you will learn how to develop modular monoliths using .NET 8, a modern approach to building scalable, maintainable, and flexible applications. By the end, you'll be proficient in creating modular monoliths that offer the benefits of both traditional monolithic architectures and microservices, avoiding the pitfalls of both. You'll explore key concepts like vertical slice architecture, dependency injection, domain-driven design (DDD), and clean architecture while gaining practical experience in building modular components. The course begins with an overview of modular monoliths and their advantages over traditional monolithic architectures and microservices. You'll also get a deep dive into the limitations of traditional monoliths and the common issues with microservices architecture, such as technology lock-in and distributed monoliths. After building a solid foundational understanding, you will explore modular monoliths, particularly through the lens of real-world examples such as Shopify's architecture and Amazon's transition from microservices back to a monolithic structure. Moving forward, you will dive into creating a complete modular monolith solution, beginning with setting up project structures, establishing folder hierarchies, and organizing dependencies. You'll explore the various layers and modules of the application, ensuring that each module is developed with best practices for scalability and maintainability. Special attention is given to domain modeling using DDD, implementing CQRS, and structuring APIs to achieve separation of concerns while optimizing for modularity. This course is perfect for developers looking to transition from traditional monoliths to modular architectures or those seeking a robust understanding of .NET-based modular monoliths. No prior experience with .NET 8 is required, though a basic understanding of C# and software development principles will be helpful. Whether you're working on large-scale enterprise applications or smaller projects, this course provides the tools and techniques to design and implement a highly maintainable and scalable solution.
-
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.
-
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 dives into the implementation of event-driven architectures in microservices and focuses on secure communication between services. You'll gain practical skills in utilizing RabbitMQ and MassTransit for asynchronous communication, which is essential for developing scalable and reliable systems. Learn how to implement modular monolithic designs and explore the complexities of integrating microservices using event-driven principles. The course begins by introducing asynchronous messaging with RabbitMQ and MassTransit. You will explore modular monolithic architectures and how they handle asynchronous communication between modules for better scalability. You will also examine key messaging patterns like publish/subscribe, ensuring you understand the full process of event-driven systems. Moving forward, you will work on developing integration events, including setting up shared messaging libraries and using MassTransit to handle integration events. The course also includes in-depth testing of integration events and the handling of message flows, ensuring your systems are robust and functional. Targeted at software developers and engineers with a basic understanding of .NET and microservices, this course covers everything from implementing security with Keycloak to containerizing your applications using Docker-Compose. The course provides hands-on experience in building secure, scalable systems in real-world scenarios. Basic knowledge of .NET, microservices, and event-driven architecture concepts.
Taught by
Packt - Course Instructors