A microservices e-commerce reference application built with ASP.NET 9
See the code
A real-world reference application powered
by desenvolvedor.io
implementing the most common and used technologies to share with the technical community the best way to develop full
and complex applications with .NET
If you liked the project or if DevStore is helping you, please give us a star ;)
Check these online courses at desenvolvedor.io (only in Portuguese)
.NET 9
Components / Services
Hosting
This is a reference application, each microservice has its own database and represents a bounded context (DDD concept). There is a BFF / API Gateway to manage the Basket / Order / Payment requests and data structure from responses.
You can run the DevStore project on any operating system. **Make sure you have installed docker in your environment. ** (Get Docker Installation)
Clone the DevStore's repository and navigate to the /Docker folder and then:
docker-compose up
This docker compose will provide one database container per each API service.
docker-compose -f docker-compose-local.yml up --build
This docker compose will provide just one database container for all API services.
docker-compose -f docker-compose-local-light.yml up --build
You will need:
So you can edit the Docker compose to just run the database and queue dependencies and save your time.

{
"version": "0.2.0",
"configurations": [
{
"name": "DevStore MVC WebApp",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/web/DevStore.WebApp.MVC/bin/Debug/net9.0/DevStore.WebApp.MVC.dll",
"args": [],
"cwd": "${workspaceFolder}/src/web/DevStore.WebApp.MVC",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Billing API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Billing.API/bin/Debug/net9.0/DevStore.Billing.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Billing.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Catalog API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Catalog.API/bin/Debug/net9.0/DevStore.Catalog.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Catalog.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Customers API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Customers.API/bin/Debug/net9.0/DevStore.Customers.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Customers.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Identity API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Identity.API/bin/Debug/net9.0/DevStore.Identity.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Identity.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Orders API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Orders.API/bin/Debug/net9.0/DevStore.Orders.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Orders.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore ShoppingCart API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.ShoppingCart.API/bin/Debug/net9.0/DevStore.ShoppingCart.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.ShoppingCart.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore BFF Checkout",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/api-gateways/DevStore.Bff.Checkout/bin/Debug/net9.0/DevStore.Bff.Checkout.dll",
"args": [],
"cwd": "${workspaceFolder}/src/api-gateways/DevStore.Bff.Checkout",
"console": "internalConsole",
"stopAtEntry": false
}
],
"compounds": [
{
"name": "Start all projects",
"configurations": [
"DevStore MVC WebApp",
"DevStore Billing API",
"DevStore Catalog API",
"DevStore Customers API",
"DevStore Identity API",
"DevStore Orders API",
"DevStore ShoppingCart API",
"DevStore BFF Checkout"
],
"stopAll": true
}
]
}
Open an issue and let's discuss! Do not submit PRs for undiscussed or unapproved features.
If you want to help us, choose an approved issue and implement it.
See the project running on DevStore official instance
DevStore was proudly developed by desenvolvedor.io
❤
team under the MIT license.
A microservices e-commerce reference application built with ASP.NET 9
See the code
A real-world reference application powered
by desenvolvedor.io
implementing the most common and used technologies to share with the technical community the best way to develop full
and complex applications with .NET
If you liked the project or if DevStore is helping you, please give us a star ;)
Check these online courses at desenvolvedor.io (only in Portuguese)
.NET 9
Components / Services
Hosting
This is a reference application, each microservice has its own database and represents a bounded context (DDD concept). There is a BFF / API Gateway to manage the Basket / Order / Payment requests and data structure from responses.
You can run the DevStore project on any operating system. **Make sure you have installed docker in your environment. ** (Get Docker Installation)
Clone the DevStore's repository and navigate to the /Docker folder and then:
docker-compose up
This docker compose will provide one database container per each API service.
docker-compose -f docker-compose-local.yml up --build
This docker compose will provide just one database container for all API services.
docker-compose -f docker-compose-local-light.yml up --build
You will need:
So you can edit the Docker compose to just run the database and queue dependencies and save your time.

{
"version": "0.2.0",
"configurations": [
{
"name": "DevStore MVC WebApp",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/web/DevStore.WebApp.MVC/bin/Debug/net9.0/DevStore.WebApp.MVC.dll",
"args": [],
"cwd": "${workspaceFolder}/src/web/DevStore.WebApp.MVC",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Billing API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Billing.API/bin/Debug/net9.0/DevStore.Billing.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Billing.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Catalog API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Catalog.API/bin/Debug/net9.0/DevStore.Catalog.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Catalog.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Customers API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Customers.API/bin/Debug/net9.0/DevStore.Customers.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Customers.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Identity API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Identity.API/bin/Debug/net9.0/DevStore.Identity.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Identity.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore Orders API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.Orders.API/bin/Debug/net9.0/DevStore.Orders.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.Orders.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore ShoppingCart API",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/services/DevStore.ShoppingCart.API/bin/Debug/net9.0/DevStore.ShoppingCart.API.dll",
"args": [],
"cwd": "${workspaceFolder}/src/services/DevStore.ShoppingCart.API",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": "DevStore BFF Checkout",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceFolder}/src/api-gateways/DevStore.Bff.Checkout/bin/Debug/net9.0/DevStore.Bff.Checkout.dll",
"args": [],
"cwd": "${workspaceFolder}/src/api-gateways/DevStore.Bff.Checkout",
"console": "internalConsole",
"stopAtEntry": false
}
],
"compounds": [
{
"name": "Start all projects",
"configurations": [
"DevStore MVC WebApp",
"DevStore Billing API",
"DevStore Catalog API",
"DevStore Customers API",
"DevStore Identity API",
"DevStore Orders API",
"DevStore ShoppingCart API",
"DevStore BFF Checkout"
],
"stopAll": true
}
]
}
Open an issue and let's discuss! Do not submit PRs for undiscussed or unapproved features.
If you want to help us, choose an approved issue and implement it.
See the project running on DevStore official instance
DevStore was proudly developed by desenvolvedor.io
❤
team under the MIT license.