Making your monoliths modular and maintainable using MediatR 3.0
Joseph is a .NET focused software engineer currently working at Just Eat, organiser of .NET South West and open-source contributor. His loves include programming, sharing knowledge, learning, growing, community, open-source software, speaking and blogging.
In this talk we'll look at how we can give the traditional n-tier application the boot in favour of a more maintainable and modular CQRS (Command/Query Responsibility Segregation) focused architecture facilitated by MediatR 3.0. Put down that service layer and put your controllers on a diet!
We've all worked with a monolith and we all know the unbearable pains that come with them. Controllers fatter than Thomas the Tank Engine's Fat Controller, repositories that quickly become a dumping ground for data access with zero cohesion and services that make the SOLID principles cry. All of these violations make for a codebase that's hard to maintain, tough to evolve and a terror to work with.
In this talk we'll say "No!" to the 3-tier application and look at an alternative architectural approach that favours breaking your application into slices as opposed to layers, isolating our business logic and utilising the Command/Query Responsibility Segregation pattern to isolate our reads from our writes.
But wait, we won't stop there. We'll take a look at the other features MediatR 3.0 provides that helps push us into the pit of success such as its powerful pipelining ability that allows us to easily manage and implement cross-cutting concerns such as caching, logging and validation.