Central Group logoCase study

Central Group

QuestDB is the core engine driving real-time analytics data for Central Group, the largest retail company in Asia.

Central Group's major footprints in Thailand comprises over 4 million sqm of net leasable area, 60 malls, 2400 retail stores, 1000 food outlets, and 53 hotels.

Central Group's major footprints in Thailand comprises over 4 million sqm of net leasable area, 60 malls, 2400 retail stores, 1000 food outlets, and 53 hotels. Source.

Workflow iconPlug and play with Grafana

Gauge iconHigh-throughput ingestion

Time iconReal-time performance monitoring

Leaf iconOptimised query performance

Dollar iconCost-effective hardware usage

Workflow iconDynamic data analysis

The team

Central Group is a retailer originated from Thailand. Today, they are the largest retailer in Asia with businesses across the globe. The organization is fast-growing and owns business in various sectors including department stores, hospitality, restaurants, mobility as a service, logistics, and fintech solutions.

In this article, Central Group's Head of R&D, Clovis Warlop, and MarTech Product Owner, Damien Dupont, take us through Central Group's requirements for real-time data analytics processing. They also explain why they decided to incorporate QuestDB at the core of their architecture.

The challenge to deploy real-time analytics

Central Group consists of a couple dozens of business units across industries such as fashion, property, supply chain, and logistics. We aggregate data from online and offline data points and our ultimate aim is to deliver the data as actionable dashboards to specific teams in each business unit. The real-time trends are broadcast on big screens in our offices, so that each business unit can monitor and react promptly when any unusual data is detected. This solution is our Business Control Tower.

We started with developing the solution for just one business unit, the Central Department Store.

This business unit collects intelligence from its e-commerce platforms, physical stores, as well as business analytical tools. Sales metrics such as product category, brand as well as discount are collected into our data pipelines and our solution displays the information as analytical dashboards on Grafana. Real-time monitoring means that the business unit can take corrective actions promptly if any anomalies are detected.

Ultimately, the real-time statistics enable business modelling and data-driven marketing strategies. Monitoring online search terms, order progress, and promotion over time also means that we can track and react to consumer behaviors dynamically, in order to automate marketing campaign triggers.

Real-time performance marketing: This dashboard monitors the effect of marketing campaigns in sales and the corresponding product stock, highlighting products low in stock. Tracking discount and order allows quick analysis of revenue and stock distribution (screenshot altered to protect sensitive data).

Real-time performance marketing: This dashboard monitors the effect of marketing campaigns in sales and the corresponding product stock, highlighting products low in stock. Tracking discount and order allows quick analysis of revenue and stock distribution (screenshot altered to protect sensitive data).

QuestDB powers the marketing performance tracking dashboard, allowing dynamic comparison between various advertisement platforms across a selected time span (screenshot altered to protect sensitive data).

QuestDB powers the marketing performance tracking dashboard, allowing dynamic comparison between various advertisement platforms across a selected time span (screenshot altered to protect sensitive data).

Since we aggregate data from both online and offline sales, our Business Control Tower can correlate online sales with the physical presence of the department store geographically. More recently, we have implemented a dashboard analyzing offline business performance: we are working with different teams to understand the presentation of our footfall, that is, the number of people in a building in real time.

QuestDB deployment on Central Group stack

We deploy a dedicated Change Data Captures (CDCs) process to collect endpoints from various source:

  • E-commerce platforms: Online order tracking.
  • Analytical data: Keyword searches, user data analysis.
  • Online marketing data: User interaction with social media feeds, online advertisement.
The CDCs are then streamed into Kafka. QuestDB's engine consumes Kafka topics in real time and acts as long term storage of time series data. In the meanwhile, we have about 10 Grafana dashboards constantly querying QuestDB to showcase real-time analytics and time series charts.

High-level overview of the Business Control Tower solution at Central Group.

High-level overview of the Business Control Tower solution at Central Group.

Grafana dashboards querying QuestDB database.

Grafana dashboards querying QuestDB database.

Why QuestDB?

Our key requirement is to process data and generate multiple dashboards, all in real time. Time-series databases (TSDBs) are optimized to process large amounts of timestamped data efficiently, so it was clear that we should be looking in this direction.

As the Head of the team, I was in charge of comparing different options based on my experience and research: InfluxDB could not accommodate the input scale our APIs demand. Similarly, our in-out requirement was higher than the capacity provided by Google Suite. SingleStore did not provide any sensible recovery mechanisms when the system crashed, and it was also costly.

In the end, QuestDB stood out for the following reasons:

  • Superior performance: Fastest overall performance for our user traffic and dashboard queries.
  • Easy integration with Grafana: Setting up Grafana dashboards and panels is straightforward with the PostgreSQL Wire Protocol.
  • Lower hardware costs: Since we deployed QuestDB in production, we have not increased the number of CPUs nor the amount of RAM. This helps us manage our costs.