• Stars
    star
    191
  • Rank 195,690 (Top 4 %)
  • Language
    C#
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸ”€ FluentMediator is an unobtrusive library that allows developers to build custom pipelines for Commands, Queries and Events.

FluentMediator

Build Status All Contributors GitHub issues GitHub pull requests NuGet

πŸ”€ We will not require you to add dependencies into your domain or to implement frameworks interfaces in your event handlers. Finally a really loosely coupled mediator library was born.

Install

Install-Package FluentMediator

For seameless .NET Core integration:

Install-Package FluentMediator.Microsoft.Extensions.DependencyInjection

How

Setup your events and pipelines using depedency injection. You can be very creative here! It supports async methods and cancellable tokens parameters, you could append multiple steps select one to return a message. An example:

services.AddFluentMediator(builder => {
    builder.On<PingRequest>().Pipeline()
        .Call<IPingHandler>((handler, request) => handler.MyMethod(request))
        .Call<IPingHandler>((handler, request) => handler.MyLongMethod(request))
        .Return<PingResponse, IPingHandler>(
            (handler, request) => handler.MyOtherMethod(request)
        );
});

Then you are able to use the injected IMediator interface.

Publishing Events

// Puts the message in the pipeline, calls three handlers.
mediator.Publish<PingRequest>(ping);

Sending Commands and Queries

// Calls the three handlers then get the response from `MyOtherMethod(PingRequest)`.
PingResponse response = mediator.Send<PingResponse>(new PingRequest("Ping"));
Console.WriteLine(response.Message); // Prints "Pong"

Why

When designing CQRS or Event-Driven applications we need to publish events from the infrastructure layer into the domain event handlers. We do not want framework dependencies leaking out to the Model then FluentMediator was born.

Contributors

Ivan Paulovich
Ivan Paulovich

πŸ’» 🎨 ⚠️
Joakim Carselind
Joakim Carselind

πŸ‘€ πŸ€”
Vaggelis Mparmpas
Vaggelis Mparmpas

⚠️

Please contribute with Issues, Wiki and Samples.

More Repositories

1

clean-architecture-manga

πŸŒ€ Clean Architecture with .NET6, C#10 and React+Redux. Use cases as central organizing structure, completely testable, decoupled from frameworks
C#
3,849
star
2

hexagonal-architecture-acerola

An Hexagonal Architecture service template with DDD, CQRS, TDD and SOLID using .NET Core 2.0. All small features are testable and could be mocked. Adapters could be mocked or exchanged.
C#
446
star
3

dotnet-new-caju

Learn Clean Architecture with .NET Core 3.0 πŸ”₯
C#
250
star
4

event-sourcing-jambo

An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
C#
188
star
5

ddd-tdd-rich-domain-model-dojo-kata

DDD patterns implemented following TDD
C#
140
star
6

clean-architecture-webapi-ef-core

❀️ The simplest Clean Architecture demo on how to implement a Web Api using .NET Core and Entity Framework
C#
131
star
7

todo

βœ… Commad-Line Task management with storage on your GitHub πŸ”₯
C#
121
star
8

event-sourcing-castanha

An Event Sourcing service template with DDD, TDD and SOLID. It has High Cohesion and Loose Coupling, it's a good start for your next Microservice application.
C#
80
star
9

clean-architecture-video-tutorials

Live Streaming and Video Tutorials on Clean Architecture, DDD, TDD using .NET Core every week on Paulovich.NET Youtube channel.
C#
51
star
10

webapi-backgroundworker-rabbitmq

Sample implementation of a WebApi that publishes messages to RabbitMQ and consume them using a BackgroundWorker.
C#
24
star
11

TechTalks

Download the high-resolution slides from my past talks to easy your learning into Clean Architecture.
23
star
12

clean-architecture-kata-dojo

⭐ Kata to learn Clean Architecture and Hexagonal Architecture styles, you start with two use cases already implemented and the final solution has six use cases. ⭐
C#
21
star
13

amora-angular-app

An Angular App with Material Design and client of the Microservices Acerola and Manga
TypeScript
16
star
14

CleanArchitectureVSCodeSnippets

Clean Architecture C# Snippets for Visual Studio Code
TypeScript
10
star
15

mfa

DDD + Aggregates + Event Sourcing com .NET Core, Kafka e MongoDB (School Management)
C#
9
star
16

IdentityServer4Sample

C#
7
star
17

betsson-meetup-ddd-tdd

Building Rich Domain Models with DDD and TDD - Presentation
C#
7
star
18

MrRobot

A programmatically Cleaning Robot that informs the number of places cleaned after each execution.
C#
5
star
19

ivanpaulovich

Tech Lead, Software Engineer, 20+ GitHub projects about Clean Architecture, SOLID, DDD and TDD. Speaker/Streamer. Microsoft rMVP.
4
star
20

software-craftsmanship-study-plan

3
star
21

goat-ecs

Goat-ECS is an Entity-Component System with a friendly API to build objects with dynamic components.
C++
3
star
22

dotfiles

Shell
3
star
23

dotnet-new-on-the-web

Run dotnet new command on demand in an Web App
C#
2
star
24

tdd-practices

Practicing TDD
C#
1
star
25

openhackC4H

Classify Jobs description accordingly to a Natural Language then translate the results into Emoji!
C#
1
star
26

lapland

C#
1
star