Back to workWork / Onlihub Catalog

Onlihub Catalog

Different data paths for different workloads

Architecture and implementation of the catalog service
01 / The challenge

The challenge

Large listing datasets and expensive queries needed a read model suited to their access patterns.

02 / How I approached it

How I approached it

I separated the fast Rust serving layer, a Python fallback, cache and search/read responsibilities from transactional storage. Load balancing and request throttling controlled repeated traffic, while bulk processing and query optimization addressed expensive data operations.

System flow
  1. Traffic control

  2. Fast read path

  3. Cache & search

  4. Transactional data

What that means in practice

Architecture & decisions

01

Dedicated service, explicit data paths

The marketplace catalog became a dedicated service with its own serving architecture. Rust handled the primary fast path, with a Python fallback alongside it. I was responsible for both the architecture and its implementation, separating the catalog workload from the broader commerce application.

02

Cache, search and transactions have different jobs

Redis cached data for repeated reads, while Elasticsearch provided the search/read model and PostgreSQL retained transactional responsibilities. This separated how catalog data was retrieved from how business state was stored. Bulk operations and heavy-query optimization complemented that division of responsibilities.

03

Control repeated traffic at the boundary

Load balancing and throttling were part of the service design. Clients making excessive repeated requests could be slowed before their traffic dominated the catalog workload. Traffic controls, caching and the fast serving layer were designed together, addressing both how requests arrived and how the underlying data was read.

03 / The outcome

The outcome

Search and high-frequency reads gained their own path while transactional storage and business logic retained separate responsibilities.

04 / Tools & technologies

Tools & technologies

Continue exploring

Manufacturing Engineering

Contact

Complex challenge? Let’s make it work.

Architecture, technical leadership, or a product that needs a solid foundation.

Start a conversation

A role, a product, or a technical challenge. Share a little context.

To use the form, enable JavaScript. You can also write to me directly on Telegram.

Write on Telegram