Category: Using MediatR as a mediatorPage 1 of 2

Downside or Upsides? – Getting Started with Vertical Slice Architecture

The following points are downsides that we can tame as upsides: A way to start refactoring that business logic would be to push the logic into the domain…

Advantages – Getting Started with Vertical Slice Architecture

On the upside, we have the following: From my experience, features tend to start small and grow over time. The users often find out what they need while…

Vertical Slice Architecture – Getting Started with Vertical Slice Architecture

Instead of separating an application horizontally (layers), a vertical slice groups all horizontal concerns together to encapsulate a feature. Here is a diagram that illustrates that:  Figure 17.1:…

Anti-pattern – Big Ball of Mud – Getting Started with Vertical Slice Architecture

Before you begin: Join our book community on Discord Give your feedback straight to the author himself and chat to other early readers on our Discord server (find…

Dependency identifier – Mediator and CQRS Design Patterns

If you need markers to inject some specific dependency in a particular class, you are most likely cheating the Inversion of Control principle. Instead, you should find a…

Conclusion – Mediator and CQRS Design Patterns

The CQS and CQRS patterns suggest dividing the operations of a program into commands and queries. A command mutates data, and a query fetches data. We can apply…

Project – CQS – Mediator and CQRS Design Patterns-3

The test program setup is composed of the following: Once again, the names of the participants are randomly generated. The TestMessageWriter implementation is a little different and accumulates…

Project – CQS – Mediator and CQRS Design Patterns-2

We cover ways to organize commands and queries in subsequent chapters. Let’s start with the JoinChatRoom feature: public class JoinChatRoom{    public record class Command(IChatRoom ChatRoom, IParticipant Requester) :…

Implementing the Mediator pattern – Mediator and CQRS Design Patterns-2

That class could hardly be simpler: it takes a name and an IMessageWriter<TMessage> implementation when created, then it stores a reference for future use.The IMessageWriter<TMessage> interface serves as…

Implementing the Mediator pattern – Mediator and CQRS Design Patterns-1

The Mediator pattern is another GoF design pattern that controls how objects interact with one another (making it a behavioral pattern). Goal The mediator’s role is to manage…