Microservices architecture has gained popularity in recent years. We evolved from N-Tier to SOA and then microservices. Every architecture style has it’s pros and cons. I am not going to write pros and cons of microservices or how do we build it but is high level overview of services that i am using in my project. You can find details of my project on Github described in sections below.

I started to dig deeper into microservices and started a demo project couple of weeks ago to shape my concepts into actual project. I would say it’s fun but at the same time it’s challenging . I started to follow eshopContainers which is open source shopping portal built on microservices architecture. I would suggest anyone to definitely look into if you are interested to learn about microservices.

Microcouriers

The demo project i started is called Microcouriers. It’s fictional courier service where users can book , pay and track orders. I am big fan of Azure so i choose to use Azure cloud services to realize my project. It’s an open source project available on github here

I divided my services based on DDD bounded context. It’s event driven architecture and i am using Azure service bus for events passing. I am using combination of popular architecture patterns and technologies in my project mentioned below

  • DDD
  • SAGA
  • CQRS/Event Sourcing
  • Event-Driven Microservices
  • Clean Architecture
  • Dependency Injection
  • DIP (Dependency Inversion Principle)

Technical stack

.Net Core 2.2, Azure Cloud services (explained below), Docker , Polly (for resiliency) , SQL Server , Entitiyframe work Core , Dapper (MicroORM), Autofac , MediatR ( for CQRS)

Azure cloud Services

There are many services in azure which we can leverage when working on Microservices. Some of them that i am using is

Azure Service Bus – Since it’s event driven architecture so I am using Service bus to pass around the events.

Azure Redis Cache – Azure redis cache is in memory database to return the quicker response.

Azure Functions – Azure function is serverless offering . Service bus events are triggering functions to update my read model

Azure Kubernetes – I will be using kubernetes to deploy my microservices. Kubenetes is leading container orchestration tool.

If you are new to microservices , i would suggest to read following topics

Microcouriers Sample project

https://docs.microsoft.com/en-us/azure/architecture/microservices/

https://github.com/dotnet-architecture/eShopOnContainers

Like the post ? Share !