Our implementation of Vertical Slice Architecture in .NET
Lecture co-hosts: @lgcmotta and @ffernandolima.
Banking App was designed to act as a simplistic implementation of a bank backend using the Vertical Slice Architecture.
The microservices are organized into components (use cases), and each feature is an independent part of the system. A feature can never import code from some other component. This is designed to prevent side effects when the feature code changes. However, features can import general-purpose code.
Features can be either a Command
or a Query
, but never both. Although the output from a Query
can be a Command
.
The feature entrypoint is responsible to send the Command
or request the Query
data.
- .NET 7 SDK
- Docker
Start container dependencies with:
docker compose up -d
To have the Banking App full picture up and running you need to start the following projects:
./src/Geteway/BankingApp.Gateway
./src/Accounts/BankingApp.Accounts.API
./src/Transactions/BankingApp.Transactions.API
./src/Fees/BankingApp.Fees.API
You can use your IDE to launch these projects, or the dotnet run
command.
Feel free to open an issue or a pull request.