AWS Micro-services Architecture - The Omnichannel Enabler


Retailers’ investments today are digital driven and omnichannel focus, willing to reach out the best from any business opportunity.
Omnichannel doesn’t mean only technology but processes and organizations are impacted: streamlining and changing the core processes around order, pick up, delivery and return means embracing channels, logistics, delivery services, stock availability and people. 
In this scenario Retailers want to offer the customer with more flexibility in terms of order payments, pickup points, delivery, refund and return; a scalable process to all stores, brands and countries. 
Last but not least, Retailers are looking for a solution that connects all the major actors in the order flow (stores, commerce, customer service, and accountability), with a unique system of Order Management.



Retail Reply built a solution to address these needs.
The approach used was driven by the goal to design a scalable and elastic platform in order to manage the pick and unpick of volumes in different time frames (E.g. Black Friday, Promotion and seasonal sales).

The application is composed by the following different services:

  • Order Service: to manage the order creation and update
  • Inventory Service: to store stock information and to provide near real-time inventory quantities. This service also provides the sourcing algorithm in order to evaluate the best option of the fulfillment, considering the DC warehouse and a large number of stores.
    The rules used by the algorithm are:
    • Distance between the point of fulfilment and delivery address (for example the customer home or a physical store in case of Pay and Collect order)
    • Store priority
    • Shipment Grouping: to optimize the number of shipments for each point of fulfilment
    • Stores rotation index
    • Catalog Service
  • Payment Service: directly integrated with third-party payment providers (e.g. GestPay, AmazonPay, Adyen and ScalaPay)Shipment Service: accounted for the integration with carriers (e.g. TNT, FedEx, DHL and Correos).


A micro-services application based on AWS Managed Service Java Spring Boot delivered in a Kubernetes cluster exploiting the AWS managed services.
Just deep diving the solution, we have the management layer of the cluster provided by Amazon EKS service and the worker nodes are provisioned via AutoScaling Groups. 
To grant isolation between the different application environments, three different EKS clusters have been implemented each one in a dedicated Amazon VPC instance. 
The resources are spread across three available zones inside the region and traffic is balanced using an Application Load Balancer. 
The database for the application is Amazon Aurora RDS with PostgreSQL compatibility. 
One cluster for each environment has been created. 
The external integrations with third-party components are achieved via an API Gateway that proxies the requests for this application. The VPC networks are linked with other AWS accounts which provide services for this application via peering connection to exploit the AWS backbone network. 
A managed Kafka cluster (Amazon MSK) is used to manage message queues. This simplify the decoupling of the frontend and backend components, by changing some processes from synchronous to asynchronous.


You may also like

No contents here.