MTN · Logistics

Last-mile logistics platform rebuilt without a cutover

A delivery platform migrated from Go and RabbitMQ to FastAPI and Kafka side by side, with compatibility wrappers so every caller moved on its own schedule.

FromGo, RabbitMQ
ToFastAPI, Kafka
Kafka topics20+
Delivery partnersPost, on-demand couriers, private couriers, pickup

The challenge

Consumer delivery of products and documents ran on four Go services communicating over RabbitMQ. The stack was hard to staff and hard to change, and bulk operations disappeared into queues where nobody could see them.

What we built

A FastAPI platform with Celery scheduling, three PostgreSQL databases, Redis, object storage, Elasticsearch and OpenTelemetry tracing, with Kafka carrying more than twenty topics.

Capabilities include order and pre-order lifecycle, dealer and rider assignment with coverage zones, multi-partner delivery through national post, on-demand couriers, private couriers or in-store pickup, barcode generation, bulk spreadsheet operations, document upload and rejection handling, holiday and delivery-window management and operational analytics.

The migration

The new platform ran beside the old one. Backward-compatibility wrappers exposed the legacy route shapes so each caller could move on its own schedule. A standalone inventory service was absorbed into the new core, and queue-driven bulk jobs became direct calls with tracing, so operations teams could finally see what was happening.

We'd love to hear from you!

Whether you have a question about our services and solutions or want to discuss a potential project, feel free to reach out.