Building Future-Proof Apps with the Modular Monolith

Room 8
09:00 - 17:00
(UTC+02

2 Days

Monday 
In the world of software development, finding the right balance between monolithic and microservices architectures is crucial to creating maintainable and scalable applications. However, the journey to microservices is not without its challenges, and teams often find themselves grappling with the repercussions of early adoption.
Architecture

Introducing the modular monolith; all the benefits of a monolith such as reduced complexity, ease of deployment, easier debugging, and so on - but ready to be easily decomposed into services as required.

Join us as we explore the principles, patterns, and practices that empower developers to build robust, flexible, and extensible applications without prematurely involving the complexities of microservices and distributed systems.

In this workshop, we will use the fictional case study of a thriving business aspiring to expand, exploring key topics.

We'll investigate the different requirements that need to be met, starting with a code kata and how we can apply various design patterns to our way of thinking.

We'll then move on to actually building out a functioning, all-be-it, contrived application in .NET 8 and C#, learning as we go.


Topics we'll cover:

  • Modular Design Principles: Learn how to break down your application into cohesive modules that encapsulate distinct functionalities, promoting code reuse and easier maintenance.
  • Dependency Management: Discover techniques for managing dependencies between modules, ensuring clear boundaries and minimising tight coupling.
  • Scalable Architecture: Explore strategies for designing monoliths that can scale vertically and horizontally to accommodate growing demands.
  • Architecture enforcement: Dive into architecture testing and other approaches that help with maintaining the architecture and design.
  • Performance Optimization: Gain insights into optimizing module communication and data flow to enhance the overall performance of your application.
  • Future Migration Considerations: Explore how modular monoliths can serve as a stepping stone towards a microservices architecture, and the factors to consider when planning a future migration.
  • Reverse migration: Understand the considerations and techniques for reverse migration from distributed system back to a monolithic architecture.

We'll also cover aspects of event-driven architecture, messaging, No-SQL databases, and various supporting design patterns.

Intended Audience
This workshop is aimed at backend developers with some experience writing web applications using C# and .NET. The workshop will not cover .NET Framework.

Computer Setup
This is a hands-on practical workshop where you will be writing a lot of code. You will need to have the following to effectively participate:

  • Laptop (Windows PC or macOS)
  • Visual Studio 2022 or JetBrains Rider
  • VS Code
  • SQL Server 2017 or later, with SQL Server Management Studio or Azure Data Studio
  • .NET 8 or higher
  • Docker Desktop
  • Postman or similar
  • Azurite
  • .NET Aspire Workload installed

Layla Porter

Layla is a Microsoft MVP, Progress Champion, and 3 times GitHub Star.
She is passionate about enterprise software development and architecture. She has recently started bringing those architecture concepts into game development and live codes Unity game development on Twitch.
Layla lives in the UK with her husband Jim and dogs Lily and Cookie.