/modular-framework

Set of shared abstractions & components for building the modular monolith

Primary LanguageC#MIT LicenseMIT

Modular Framework

Overview

About

Modular framework is a set of helpful components for building the modular applications, especially based on Modular Monolith architecture. The code is written in C# language using the latest version of .NET framework for cross-platform capabilities. The project isn't published as NuGet package, so it's best to clone it and adjust to your own needs. Solution is split into 2 separate projects:

  • Abstractions - mostly set of interfaces that can be easily injected into your code
  • Infrastructure - the actual code implementing the provided public abstractions

Within the modular framework, you can find the following components:

  • Dynamic module loading & configuration
  • Autonomous  module clients for communication & integration
  • Command, Query, Event handlers & dispatchers
  • Message broker - sync & async, background broker with the usage of channels
  • Application & Correlation context metadata
  • Local contracts rules & validation
  • JWT authentication extensions with cookie & certificate support
  • Exception handling & mappers
  • Domain event handlers & dispatcher
  • Transactional decorators for distinct schema-based unit of work
  • Logging decorators for tracking the requests & messages
  • Inbox & Outbox support for EF Core + PostgreSQL
  • Security - encryption, hashing
  • Redis caching extensions

Samples

  • Confab - conference management system + UI
  • Trill - simple Twitter clone + UI
  • Inflow - virtual payments platform
  • Template - basic template with empty modules

Resources