Posts

MassTransit EF Core Outbox (NO custom polling worker)

Meaning: You don’t write OutboxPublisherWorker MassTransit automatically stores messages in SQL Server Publishes only after transaction commits Automatically retries delivery Clean + production-ready ✅ What You’ll Get in NEXT++ 1) MassTransit Transactional Outbox Your controller does: Save Order Publish Event (inside same transaction) MassTransit stores it in Outbox table Publishes after commit 2) Inbox (Idempotency) MassTransit can also handle duplicate protection. 3) Retries + Error queue Built-in. 1) Install Required Packages dotnet add package MassTransit dotnet add package MassTransit.RabbitMQ dotnet add package MassTransit.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools 2) DbContext (Orders + MassTransit Outbox Tables) 📌 AppDbContext.cs using MassTransit; using MassTransit.EntityFrameworkCoreIntegration; using M...

Enterprise RabbitMQ + MassTransit + Outbox + EF Core + SQL Server (Real Production Style)

✅ What We’re Building (Enterprise) Orders API Saves Order in SQL Server Saves Outbox message in SQL Server (same transaction) Outbox Publisher Worker Reads Outbox table Publishes event to RabbitMQ via MassTransit Marks Outbox as Processed Consumer Service Consumes OrderSubmitted Has retry policy If fails → MassTransit automatically moves to _error queue 1) Docker Compose (RabbitMQ + SQL Server) 📌 docker-compose.yml version: "3.8"   services:   rabbitmq:     image: rabbitmq:3-management     container_name: rabbitmq-enterprise     ports:       - "5672:5672"       - "15672:15672"     environment:       RABBITMQ_DEFAULT_USER: guest       RABBITMQ_DEFAULT_PASS: guest     sqlserver:     image: mcr.microsoft.com/mssql/server:...