Messaging
Explore curated resources about Messaging.
Resources
Articles
Marrying RESTful HTTP with Asynchronous and Event-Driven Services
Asynchronous Messaging Patterns
Messaging Patterns Overview
Service Activator
Message Properties
Message Naming Guidelines
Organizing (Commands, Events & Handlers) in Microservices
REST APIs for Microservices? Beware!
Messaging Commands & Events Explained!
Event Choreography & Orchestration (Sagas)
Outbox Pattern: Reliably Save State & Publish Events
Handling Duplicate Messages (Idempotent Consumers)
Message-IDs for Handling Concurrency
CAP: Event Bus & Outbox Pattern
Message Queue Overload from High Processing Latency
Processing commands with Hangfire and MediatR
Using Hangfire and MediatR as a Message Dispatcher
Idempotent Aggregates
Identify Commands & Events
Idempotent Commands
Moving work Out-of-Process using Brighter and RabbitMQ
Thin vs Fat Integration Events
Events: Fat or Thin
Events on the Outside vs Events on the Inside
Patterns for Decoupling in Distributed Systems: Fat Event
Message Sender: Who Sent the Command/Event?
Why use DTOs (Data Transfer Objects)?
Event Versioning Guidelines
Fat vs thin domain events
Putting your events on a diet
What do you mean by βEvent-Drivenβ?
Are CQRS commands part of the domain model?
DTO vs Value Object vs POCO
Event Based Architecture: What do you mean by EVENT?
What's the difference between a command and an event?
Outbox, Inbox patterns and delivery guarantees explained
Distributed State β Challenges and Options
Message Naming Conventions
Building an Event Driven .NET Application: The Fundamentals
Building an Event Driven .NET Application: Setting Up MassTransit and RabbitMQ
Kafka vs RabbitMQ vs AWS SNS/SQS: Which Broker to Choose?
Event Pitfalls (and How to Avoid Them)
Designing Domain Events
Competing Consumers Pattern for Scalability
Patterns for Decoupling in Distributed Systems: Explicit Public Events
Event immutability and dealing with change
Transient fault handling
SHARING DATA BETWEEN MODULES IN MODULAR MONOLITH
Comparing Techniques for Communicating Between Services
Bus or Queue
Videos
Handling Concurrency with Message-IDs | Event Driven Architecture
Message Naming Guidelines | Event Driven Architecture
Event Versioning Guidelines
Organizing (Commands, Events & Handlers) in Microservices/SOA
Service Oriented Architecture: Commands & Events Explained!
Handling Duplicate Messages (Idempotent Consumers)
Sagas: Event Choreography & Orchestration (NServiceBus)
CAP: Event Bus & Outbox Pattern
Thin or Fat Events? Are your boundaries right?
GOTO 2017 β’ The Many Meanings of Event-Driven Architecture β’ Martin Fowler
On .NET Live - Messaging Patterns for .NET Developers
Competing Consumers Pattern for Scalability | Message Queues
Event Driven Architecture for Real-Time Web
Learnings from Running 1000s of Production RabbitMQ Clusters β’ Lovisa Johansson β’ RabbitMQ Summit
What is Event Driven Architecture? (EDA - part 1)
The Saga Pattern in Microservices (EDA - part 2)
GOTO 2019 β’ Temporal Modelling β’ Mathias Verraes
Handling Failures in Message Driven Architecture
Building a Mediator library in .NET from scratch
Message Driven Architecture to DECOUPLE a Monolith
Synchronous vs Messaging: When to use which?
Moving work Out-of-Process using Brighter and RabbitMQ
Building a Request Pipeline for Separating Concerns with Pipes & Filters
Distributed Messaging Patterns
Message Ordering in Pub/Sub or Queue
Blocking or Non-Blocking API calls?
Is Async Programming (Async/Await) Scalable?
The second queue that EVERY message bus needs in .NET
Using your Database as a Queue? Good or bad idea?
Message Queues in System Design
Libraries
Enexure.MicroBus
MicroBus is a simple in process Mediator for .NET
Foundatio
A common interface with in memory, redis and azure implementations.
Kledex
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
MQTTnet
Tnet is a high performance .NET library for MQTT based communication.
OpenCQRS
.NET Core library for DDD, CQRS and Event Sourcing with Azure Service Bus integration. Supported database providers for the Command and the Event stores are: DocumentDB, MongoDB, SQL Server, MySQL, PostgreSQL and SQLite.
Rebus
Simple and lean service bus implementation for .NET.
RestBus
Messaging library for RabbitMq.
tossit
Simple, easy to use library for distributed job/worker logic. Distributed messages handled by built in RabbitMQ implementation.
Steeltoe
Steeltoe .NET Core Components: CircuitBreaker, Configuration, Connectors, Discovery, Logging, Management, and Security
MetroBus
Lightweight messaging wrapper of
Abp
Open Source Web Application Framework for ASP.NET Core
OpenSleigh
OpenSleigh is a Saga management library for .NET Core.
knightbus
Fast multi-transport messaging framework
SlimMessageBus
Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers.
silverback
Silverback is a simple but feature-rich framework to build reactive/event-driven applications or microservices with .net core.
Obvs
An observable microservice bus library for .NET, that wraps the underlying message transports in simple Rx based interfaces.
Platibus
Decentralized asynchronous messaging framework
EventBus
A .NET Core ultra lightweight in-memory event bus implementation.
Enbiso.NLib
.Net Standard Libraries for Microservices
eventbus
A simple Event Bus abstraction layer for working with events in .NET.
AzureFromTheTrenches.Commanding
A configuration based commanding and mediator framework that supports command dispatch and execution in-process, over HTTP or over Azure Storage Queues. Written to .NET Standard 2.0 and supports many popular runtimes including .NET Core and .NET 4.6.x.
Brighter
Command Dispatcher, Processor, and Distributed Task Queue
Darker
The query-side counterpart of Brighter
MassTransit
Distributed Application Framework for .NET
ViennaNET
Framework for quickly creating enterprise microservices on .NET Core
Fabrik.SimpleBus
A simple In-Process Message Bus for .NET
MemBus
Pure In-Memory Publish/Subscribe .NET Bus
Cysharp/MagicOnion
Unified Realtime/API framework for .NET platform and Unity.
eventflow/EventFlow
Async/await first CQRS+ES and DDD framework for .NET
dasiths/SimpleMediator
A .NET/C# implementation of the mediator pattern with support for queries, commands and events
mayuanyang/Mediator.Net
A simple mediator for .Net for sending command, publishing event and request response with pipelines supported
FoundatioFx/Foundatio
Pluggable foundation blocks for building distributed apps.
AsynkronIT/protoactor-dotnet
Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
Abc-Arbitrage/Zebus
A lightweight Peer to Peer Service Bus
Shriek-Projects/shriek-fx
An easy-to-use rapid development framework developed on the basis of.NET Core 2.0, following the constraints of domain Driven Design (DDD) specifications, combined with the CQRS architecture to provide the infrastructure for event-driven, event backtracking, responsiveness, and more. Let developers enjoy the true meaning of object-oriented
daxnet/apworks-core
Apworks framework supporting .NET Core
nats-io/nats.net
The official C# Client for NATS
zeromq/netmq
A 100% native C# implementation of ZeroMQ for .NET
zeromq/clrzmq4
ZeroMQ C# namespace (.NET and mono, Windows, Linux and MacOSX, x86 and amd64)
ThreeDotsLabs/watermill
Building event-driven applications the easy way in Go.
Cysharp/MessagePipe
High performance in-memory/distributed messaging pipeline for .NET and Unity.
cfrenzel/Eventfully
Lightweight Reliable Messaging Framework using Outbox Pattern / EFCore / AzureServiceBus
daniellittledev/Enexure.MicroBus
MicroBus is a simple in process Mediator for .NET
simplesoft-pt/Mediator
Small .NET library that helps with the implementation of mediator pattern for commands, events and queries
gautema/CQRSlite
A lightweight framework to help creating CQRS and Eventsourcing applications in C#
martinothamar/Mediator
A high performance implementation of Mediator pattern in .NET using source generators.
AlphaYu/Adnc
The microservice framework is also suitable for the development of monolithic architecture systems. It supports the classic three-tier and DDD architecture development model, and integrates a series of mainstream and stable microservice supporting technology stacks. A framework with front-end and back-end separation. The front-end is based on Vue and the back-end is built on .Net 5.0.
Im5tu/OpenMessage
Receive messages from multiple sources using a centralised delivery pipeline
SorenZ/Alamut.Kafka
An opinionated approach to use Apache Kafka in Dotnet
revoframework/Revo
Event Sourcing, CQRS and DDD framework for C#/.NET Core.