All Projects → ivanpaulovich → Fluentmediator

ivanpaulovich / Fluentmediator

Licence: apache-2.0
🔀 FluentMediator is an unobtrusive library that allows developers to build custom pipelines for Commands, Queries and Events.

Programming Languages

csharp
926 projects

Projects that are alternatives of or similar to Fluentmediator

Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (+24.22%)
Mutual labels:  event-sourcing, event-driven, dotnet-core
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.
Stars: ✭ 68 (-46.87%)
Mutual labels:  event-sourcing, event-driven, tdd
incubator-eventmesh
EventMesh is a dynamic event-driven application runtime used to decouple the application and backend middleware layer, which supports a wide range of use cases that encompass complex multi-cloud, widely distributed topologies using diverse technology stacks.
Stars: ✭ 939 (+633.59%)
Mutual labels:  message-bus, event-sourcing, event-driven
Eventflow.example
DDD+CQRS+Event-sourcing examples using EventFlow following CQRS-ES architecture. It is configured with RabbitMQ, MongoDB(Snapshot store), PostgreSQL(Read store), EventStore(GES). It's targeted to .Net Core 2.2 and include docker compose file.
Stars: ✭ 131 (+2.34%)
Mutual labels:  event-sourcing, event-driven, dotnet-core
Messagebus
A MessageBus (CommandBus, EventBus and QueryBus) implementation in PHP7
Stars: ✭ 178 (+39.06%)
Mutual labels:  event-sourcing, event-handlers, message-bus
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (+78.13%)
Mutual labels:  event-sourcing, event-driven, tdd
Akkatecture
a cqrs and event sourcing framework for dotnet core using akka.net
Stars: ✭ 414 (+223.44%)
Mutual labels:  event-sourcing, event-driven, dotnet-core
Rails event store
A Ruby implementation of an Event Store based on Active Record
Stars: ✭ 947 (+639.84%)
Mutual labels:  event-sourcing, event-driven
Foxoffice
Sample application demonstrating how to build a distributed cloud .NET Core application based on CQRS and Event Sourcing.
Stars: ✭ 33 (-74.22%)
Mutual labels:  event-sourcing, event-driven
Aspnet Core Clean Arch
It is a clean architecture project template which is based on hexagonal-architecture principles built with .Net core.
Stars: ✭ 60 (-53.12%)
Mutual labels:  dotnet-core, tdd
Message Db
Microservice native message and event store for Postgres
Stars: ✭ 1,260 (+884.38%)
Mutual labels:  event-sourcing, event-driven
Argo Events
Event-driven workflow automation framework
Stars: ✭ 821 (+541.41%)
Mutual labels:  event-driven, pipelines
Eventsourcing.netcore
Examples and Tutorials of Event Sourcing in .NET Core
Stars: ✭ 760 (+493.75%)
Mutual labels:  event-sourcing, dotnet-core
Asombroso Ddd
Una lista cuidadosamente curada de recursos sobre Domain Driven Design, Eventos, Event Sourcing, Command Query Responsibility Segregation (CQRS).
Stars: ✭ 41 (-67.97%)
Mutual labels:  event-sourcing, event-driven
Pitstop
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concepts like: Microservices, CQRS, Event Sourcing, Domain Driven Design (DDD), Eventual Consistency.
Stars: ✭ 708 (+453.13%)
Mutual labels:  event-sourcing, event-driven
Microservices Event Sourcing
Microservices Event Sourcing 是一个微服务架构的在线购物网站,使用Spring Boot、Spring Cloud、Spring Reactor、OAuth2、CQRS 构建,实现了基于Event Sourcing的最终一致性,提供了构建端到端微服务的最佳实践
Stars: ✭ 657 (+413.28%)
Mutual labels:  event-sourcing, event-driven
Nsq Event Bus
A tiny wrapper around NSQ topic and channel 🚀
Stars: ✭ 66 (-48.44%)
Mutual labels:  event-driven, message-bus
Ddd Tdd Rich Domain Model Dojo Kata
DDD patterns implemented following TDD
Stars: ✭ 91 (-28.91%)
Mutual labels:  dotnet-core, tdd
Todo
✅ Commad-Line Task management with storage on your GitHub 🔥
Stars: ✭ 111 (-13.28%)
Mutual labels:  dotnet-core, tdd
Dotnet Istanbul Microservices Demo
This is the demo application that i created for my talk 'Microservice Architecture & Implementation with Asp.Net Core' at Dotnet İstanbul Meetup Group.
Stars: ✭ 109 (-14.84%)
Mutual labels:  event-driven, dotnet-core

FluentMediator

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

🎨 ⚠️ 👀 🤔 Vaggelis Mparmpas
Vaggelis Mparmpas

⚠️

Please contribute with Issues, Wiki and Samples.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].