practical-dapr project
A lightweight low ceremony .NET microservices are lifted and shifted to Kubernetes platform and run on Dapr runtime (with and without Tye options).
This repository based on some of the old libraries. So be careful if you use it in your production environment!!!
We're working on
clean-architecture-dotnet
for the new and lightweight version of the minimal Clean Architecture, Domain-driven Design lite, CQRS lite, and just enough Cloud-native patterns, then package into Docker, and finally deploy it using Tye on Kubernetes and Dapr in a practical way👍
High level architecture
CoolStore demo application
Want to develop this application? Reference at Developer Guidance
Want to deployment this application? Reference at Deployment Guidance
Dapr building blocks
Service to service
- Dapr client to calling to another service (
product-catalog-api
toinventory-api
) - HTTP/gRPC invocation
State store
- Using state management to store the shopping cart data and its items
- Redis for state management
Pub/sub message
- Create, update and delete a project at
product-catalog-api
, and subsequently publish an event toinventory-api
to createprice
,rop
, andeoq
- Redis for pub/sub
Input/output binding
TODO
Observability
- Run
tye
command as following
$ tye run --dtrace zipkin=http://localhost:9411 --logs seq=http://localhost:5340
- Log management with Seq dashboard
- Distributed Tracing with Zipkin dashboard (OpenTelemetry)
Technical stack is at technical_stack
Show your support
If you liked practical-dapr
project or if it helped you, please give a star ⭐ for this repository. That will not only help strengthen our .NET community but also improve cloud-native apps development skills for .NET developers in around the world. Thank you very much 👍
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :p