Introduction
Being a .NET engineer you may experiment many kinds of architectures, one of those is Microservices architecture (MA). Against the traditional Monolithic architecture, the MA breaks large software projects into smaller, independent, and loosely coupled modules. They are responsible for highly defined, discrete tasks and communicate with other modules through APIs.
If you are jumping into the world of MA, you may feel vague because of hundred of distributed tutorial links.
Let’s jump deeply to the real project, name KCommerce, to figure out how easy, simple it is in the MA world.
Project
We’re going to build a very simple system, KCommerce, for sellers and buyers. There are 4 main parts:
- Web: basically the pages for users to find and pick up products that they want to buy
- CMS: the pages for admin to add products, content… (these data will be display on Web page)
- Mobile app: the same functions as Web pages, but in native mobile app
- Services: use Microservices architecture to buid many microservices for the three parts above
Solution architecture:
The complete source codes can be found on Github
Plan
The series of articles we’re going to walk through are:
- Solution explanation and technologies
- Domain driven design fundamental
- Data accessing with Postgre SQL and Mongo DB
- CQRS and Event Sourcing
- API gateways with Ocelot
- Service discovery with Consul
- Secure with JWT
- Load balancer
- Communication between microservices
- Circuit Breaker
- Microservices Healthcheck
- Logging with Serilog
- Resilience with Polly
- Distributed caching with Redis
- Search with Elastic Search
- Real time communication between client and server with SignalR
- Payment with Paypal (optional)
Additional
- React JS fundamental
- Build simple KCommerce site with React JS and communicate with microservices
- Xamarin fundamental
- Build simple KCommerce app with Xamarin and communicate with microservices
I hope you will enjoy these series. Any feedback and contribution are welcomed