• Stars
    star
    222
  • Rank 179,123 (Top 4 %)
  • Language
    C#
  • License
    MIT License
  • Created about 3 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Modular Monolith virtual payments app sample - reference project for the comprehensive course

Inflow

Modular Monolith

About

Inflow is the sample virtual payments app built as Modular Monolith, written in .NET 6.0. Each module is an independent vertical slice with its custom architecture, and the overall integration between the modules is mostly based on the event-driven approach to achieve greater autonomy between the modules. The shared components (such as cross-cutting concerns & abstractions) can be also found in a modular framework.

Starting the application

Start the infrastructure (only PostgreSQL) using Docker:

docker-compose up -d

Start API located under Bootstrapper project:

cd src/Bootstrapper/Inflow.Bootstrapper
dotnet run

Solution structure

Bootstrapper

Web application responsible for initializing and starting all the modules - loading configurations, running DB migrations, exposing public APIs etc.

Modules

Autonomous modules with the different set of responsibilities, highly decoupled from each other - there's no reference between the modules at all (such as shared projects for the common data contracts), and the synchronous communication & asynchronous integration (via events) is based on local contracts approach.

  • Customers - managing the customers (create, complete, verify, browse).
  • Payments - managing the money deposits & withdrawals (to/from actual bank account).
  • Wallets -managing the virtual wallets & money transfers between them.
  • Users - managing the users/identity (register, login, permissions etc.).

Each module contains its own HTTP requests definitions file (.rest) using REST Client extension.

Saga

Sample Saga pattern implementation for transactional handling the business processes spanning across the distinct modules.

Shared

The set of shared components for the common abstractions & cross-cutting concerns. In order to achieve even better decoupling, it's split into the separate Abstractions and Infrastructure, where the former does contain public abstractions and the latter their implementation.

Microservices transition

The sample module to microservice transition along with the integration with the existing modular monolith application can be found on microservices branch. The complete, microservices based solution can be found in Inflow-micro repository.

Additional resources

Modular Monolith

More Repositories

1

DNC-DShop

Shell
1,029
star
2

Pacco

Sample microservices solution in .NET Core 3.1 based on the cloud-agnostic approach
Shell
803
star
3

PackIT

C#
217
star
4

modular-framework

Set of shared abstractions & components for building the modular monolith
C#
150
star
5

DNC-DShop.Common

[Distributed .NET Core] Common library for DShop project.
C#
142
star
6

FeedR

Microservices sample solution for YouTube videos services
C#
137
star
7

Confab

Modular Monolith conference management app sample - reference project for the comprehensive course
C#
135
star
8

Cine

Modular monolith in .NET Core
C#
131
star
9

aspnetcore-developer-roadmap

128
star
10

ModularMonolith

C#
111
star
11

NPay

Simple virtual payments app built as a modular monolith (reference project for YouTube mini-course)
C#
106
star
12

DNC-DShop.Api

[Distributed .NET Core] API Gateway for DShop project.
C#
93
star
13

group-flights-ddd

[PL] Domain-Driven Design "Pragmatycznie" - od strategii do taktyki
C#
62
star
14

MySpot

Web API Fundamentals course project
C#
61
star
15

modular-monolith-template

C#
48
star
16

MySpot-Microservices

C#
46
star
17

Masterclass-DDD

C#
38
star
18

DNC-DShop.Services.Orders

C#
37
star
19

micro-framework

C#
37
star
20

Trill-modular-monolith

C#
35
star
21

Messaging-In-Distributed-Systems

Code for all the messaging-related concepts/patterns described on YouTube during "Messaging in Distributed Systems" series.
C#
29
star
22

DNC-DShop.Services.Identity

C#
27
star
23

DNC-DShop.Services.Products

C#
27
star
24

Pacco.APIGateway

C#
26
star
25

DNC-DShop.Services.Signalr

JavaScript
25
star
26

DNC-DShop.Monolith

C#
24
star
27

DNC-DShop.Services.Customers

C#
23
star
28

Pacco.Services.Identity

C#
23
star
29

Pacco.Services.Availability

C#
22
star
30

DNC-DShop.Services.Operations

C#
20
star
31

DNC-DShop.Services.Notifications

C#
20
star
32

ddd-building-a-model

Building domain model in an open, one step at a time. More at: https://www.youtube.com/@DevMentorsPL
C#
19
star
33

Pacco.Services.Customers

C#
17
star
34

DNC-DShop.Services.Discounts

C#
17
star
35

Pacco.Services.Orders

C#
16
star
36

Inflow-micro

C#
16
star
37

DevMentors.Api

Web application for devmentors.io
C#
15
star
38

DNC-DShop.Web

TypeScript
14
star
39

Pacco.Services.Vehicles

Vehicles service for Pacco.
C#
13
star
40

Pacco.Services.OrderMaker

Order maker service for Pacco.
C#
12
star
41

Pacco.Services.Parcels

C#
12
star
42

Pacco.Services.Pricing

Pricing service for Pacco.
C#
12
star
43

YAG

C#
11
star
44

Conveyor

C#
10
star
45

DNC-DShop.Messages

C#
10
star
46

Trill

Dockerfile
9
star
47

Nanoservice

C#
9
star
48

DNC-DShop.Services.Storage

C#
8
star
49

Pacco.Services.Operations

JavaScript
8
star
50

Pacco.Services.Deliveries

C#
8
star
51

DNC-DShop.Blazor

C#
8
star
52

Confab.Web

HTML
8
star
53

WebAPI-Workshops-Nov-2023

Repository for project developed during November Web API workshops.
C#
7
star
54

ApplicationPartManager.Demo

Example ASP.NET Core app showing ApplicationPartManager capabilities.
C#
7
star
55

Trill.Saga

C#
7
star
56

DNC-DShop.Api.Next

Shell
6
star
57

Pacco.APIGateway.Ocelot

C#
6
star
58

Trill.Services.Users

C#
6
star
59

Governor

C#
6
star
60

microservices-workshops-part-2

C#
4
star
61

NPost

Shell
4
star
62

Pacco.Web

C#
3
star
63

FastPay-workshops

C#
3
star
64

Messaging-Pragmatycznie-YouTube

C#
3
star
65

MySpot-MM-Workshops

C#
2
star
66

Trill.APIGateway

C#
1
star
67

myspot-warsztaty

C#
1
star
68

NPost.APIGateway

C#
1
star
69

NPost.Services.Parcels

C#
1
star
70

NPost.Services.Deliveries

C#
1
star
71

Trill.Services.Analytics

C#
1
star
72

NPost.Services.Routing

C#
1
star