Case Studies


Back Case Studies

Client: Global provider of technology solutions for retail industry
Industry: Retail
Project Duration: 6 months
Goal: Pull and visualize important KPI metrics for a retail client
Tech: Java, Spring, Kafka, RabbitMQ, Cassandra, InfluxDB, Grafana


Gather insights for store performance, acquire metrics and present to retail manager so they can analyse performance of various stores they own. Challenge is that this system must work in near real time (present metrics as they are gathered) and it must be fault tolerant.


We decided to leverage RabbitMQ as already present message queue to react on various events (some existing some that need to be built). After event is received, whole component should do various aggregation and store calculated result. Because of messaging and data retention capabilities we decided to use Kafka, it can store events in mid state and it can apply light processing. Also we decided to dockerize whole infrastructure and implement it as microservices.


Isolated component of bigger system which accepts event which triggers pipeline for aggregation and calculation. Results are pre processed and stored in Cassandra. We have attached monitoring stack (ELK, Grafana and InfluxDB) so we can maintain it. Whole component is functionally tested end to end with blackbox suite (using Cucumber and RabbitMQ as triggering event and HTTP to verify results).


The result is isolated component for KPI metrics which aids store managers and gives them valuable insights in store performance. Component is extensible (since it is end to end tested) and maintainable (because of rich monitoring stack).

Previous post Next post