
Explore how RabbitMQ and MassTransit enable scalable, decoupled microservices by implementing producers, consumers, exchanges, and queues, with publishing, error handling, and saga patterns for robust messaging.
Learn how publishers send messages to an exchange that routes them to queues using bindings and routing keys; durable and auto delete queues control persistence and lifecycle.
Bind the new order and cancel orders queues to the order exchange using routing keys like order.created and order.cancel, directing messages to the correct queue.
Create a two-service dotnet 8 microservices app with minimal APIs, using MassTransit and RabbitMQ, sharing messages via a shared library and defining an immutable order placed record.
Configure mass transit with RabbitMQ as the broker, define an order request dto, and post an endpoint that publishes an order placed message to RabbitMQ and returns 201 Created.
Configure mass transit with RabbitMQ in the shipping service, define the order placed queue, and implement a consumer to process incoming order events.
Test the microservices flow with RabbitMQ and MassTransit in .NET 8 by starting order and shipping services and watching events move from order to exchange to the shipping queue.
Discover how direct exchange in RabbitMQ routes messages to queues using exact routing key matches, binding keys, and specific queues, ensuring messages don’t reach unintended queues.
Learn how a direct exchange routes messages to queues using routing keys and automatic binding in a three-service app (order, shipping, tracking) with MassTransit, RabbitMQ, and .NET 8.
Explore exchange types and how the fanout exchange routes messages to all bound queues, ignoring routing keys.
Publish messages to a fanout exchange in a dotnet microservices setup using MassTransit and RabbitMQ, binding shipping and tracking queues to the order placed exchange and validating cross-service delivery.
Create a fanout exchange, configure durable, transient, auto-delete, and internal options, then bind it to queues Q1 and Q2 so messages publish to all queues regardless of routing keys.
Topic exchange routes messages to queues based on routing key patterns like order.* and order.#, with bindings that decide which queues receive keys such as order.created.
Demonstrates creating a durable topic exchange, binding two queues with order.* and order.# routing keys, and publishing messages to verify selective routing in RabbitMQ.
Publish messages to a topic exchange in RabbitMQ using MassTransit, route with keys like order.shipping or order.regular, and bind shipping and tracking queues with the pattern order.*.
Bind your queue to the topic exchange and define routing rules using order.* and order.# to direct messages to shipping and tracking services.
Explore header exchanges in this course, using header key–value pairs to route messages to specific queues based on bindings, enabling complex routing with criteria like format, type, and priority.
Demonstrates using a headers exchange to route messages to specific queues by header rules, binding two queues with format and type keys and publishing test messages.
Demonstrates headers exchange routing in RabbitMQ with MassTransit across order, shipping, and tracking services. Publishes messages with department and priority headers and binds queues to route to shipping or tracking.
Explore how RabbitMQ manages users and permissions to secure access, create users, assign rights, and control what each user can do, avoiding the default guest.
Learn to manage users and permissions in RabbitMQ by creating users, assigning roles (admin, monitoring, policy maker, management, impersonator), and configuring virtual hosts, exchanges, queues, and read/write rights.
Explore dead messages in RabbitMQ and how dead-letter exchanges safeguard data integrity by preventing loss, enabling recovery, and debugging data validation issues.
Learn how to configure a dead letter exchange and a dead letter queue to route rejected or expired messages, define time to live, and implement retries for reliable RabbitMQ messaging.
Learn to implement reliable message publishing in RabbitMQ with MassTransit to ensure messages are delivered or consumed successfully.
Learn reliable publishing with rabbitmq using publisher confirms and mandatory delivery. Know when a message reaches a queue or is returned if it cannot be routed.
Publish and confirm message delivery with RabbitMQ: set mandatory flag to route to a queue, and acknowledge to remove the message; if routing fails, the broker returns it for retry.
Explore skipped queues, retry policies, and circuit breakers with rabbitmq and masstransit. See how routing keys and direct exchanges route messages and expose error queues for recovery.
Configure MassTransit and RabbitMQ retry policies to prevent routing on the first failure. Retry three times with five-second delays and move failed messages to the error queue.
Explains exponential backoff retries (three attempts from one second to thirty seconds) and a kill switch circuit breaker that pauses the endpoint and routes failed messages to the error queue.
In this comprehensive course, you will learn how to design and build resilient microservices using .NET 8, RabbitMQ, and MassTransit, with a focus on integrating the Saga pattern for effective transaction management.
Throughout the course, you will:
Understand Microservices Architecture: Gain insights into the principles of microservices, like scalability, decoupling, and independent deployment.
Set Up Your Development Environment: Learn how to configure your development environment using .NET 8, RabbitMQ, and MassTransit to streamline your microservices development process.
Implement Asynchronous Messaging: Discover how to use RabbitMQ for messaging between services, ensuring reliable communication and data consistency.
Utilize MassTransit: Explore MassTransit as a powerful tool for simplifying message handling and service orchestration, including configuring endpoints, consumers, and middleware.
Manage Distributed Transactions with Sagas: Dive into the Saga pattern to handle long-running transactions across multiple microservices. You will learn both orchestration and choreography approaches, enabling you to choose the right method for your business scenarios.
Hands-On Projects: Engage in practical exercises and projects that simulate real-world microservices development, reinforcing your learning and preparing you for production scenarios.
Best Practices and Patterns: Learn industry best practices for building maintainable, testable, and scalable microservices, along with common patterns and anti-patterns to avoid.
By the end of this course, you will have the skills and confidence to build, deploy, and manage microservices that are robust, efficient, and scalable, ready to tackle modern software challenges.