07908 859 818

Menu

Carstore – Microservice Architecture

At my previous role I was the architect for a E commerce platform in which I designed and implemented a microservices architecture. The key design for this architecture was to allow separation of concerns into individual Web API Services that were designed at the Domain level (for example “Search“, “Payment”, “Customer”, ect).
Each WebAPI service adhered to a project design which featured a HTTP Service Client and Models project for JSON Request/Response objects. The coding conventions featured Dependency Injection, IoC using Unity, and Swagger for API documentation.
The result was that each service was easy to maintain and developers who had worked on at least 1 service were immediately familiar with the codebase of all the others. Microservices at time of writing is very trendy in the IT industry. There are many companies that have jumped on the bandwagon while not fully understanding the true implications. Some have ended up with a complex solution that is hard to test, develop, deploy and deliver.
Keen to avoid the early adopter mistakes of others, I designed an architecture that was less risky and ensured each service was at the “domain” level rather than a granular “micro” service which I personally consider and anti-pattern. I advised the business to go for PaaS (App Services) in Azure to host each Service. The advantage was that each service is independently scalable, has its own database and can be independently developed and deployed The Solution was released back in December 2018 and has been considered a major success.