klient (dnes známá pod mezinárodní značkou platforma) je největší alternativní doručovací platformou v České republice a jedním z nejrychleji rostoucích logistických hráčů ve střední Evropě. S více než 500 000 zásilkami denně, sítí přes 3 000 výdejní box výdejních boxů a přítomností v desítkách zemí se jedná o infrastrukturu, na které závisí tisíce e-shopů a miliony koncových zákazníků.
Naším úkolem bylo navrhnout a implementovat nový logistický informační systém, který nahradí stárnoucí legacy platformu a umožní Zásilkovně škálovat operace na další řád velikosti — aniž by se jediná zásilka ztratila.
Výzva¶
Legacy systém na hranici kapacity¶
Původní informační systém klienta vznikal organicky spolu s růstem firmy. Monolitická PHP aplikace s relační databází sloužila věrně v počátcích, ale s exponenciálním nárůstem objemu zásilek narážela na fundamentální limity. Zpracování denního importu dat od dopravců trvalo hodiny místo minut. Přidání nového dopravce vyžadovalo týdny manuální integrace. A každý Black Friday znamenal noční směny ops týmu, který ručně škáloval infrastrukturu a modlil se, aby systém vydržel.
Komplexita logistického řetězce¶
klient není jednoduchý courier service. Jedná se o sofistikovaný logistický ekosystém zahrnující:
- Automatizovaná depa s třídicími linkami a robotickými manipulátory
- výdejní box výdejní boxy — IoT zařízení s vlastním firmware, konektivitou a vzdálenou správou
- Mobilní aplikace pro řidiče, depo operátory i koncové zákazníky
- Integraci s 50+ externími dopravci — od České pošty přes DPD až po lokální doručovatele v Rumunsku
- Cross-border logistiku s celní dokumentací a multi-country compliance
Každá z těchto domén měla vlastní požadavky na konzistenci dat, latenci a dostupnost. Integrovat je do jednoho koherentního systému vyžadovalo zásadní architektonický přístup.
Nulová tolerance k výpadkům¶
V logistice neexistuje „maintenance window”. Zásilky se zpracovávají 24/7, depa běží na směny a koncový zákazník očekává real-time informace o své zásilce. Jakýkoli výpadek znamená reálné finanční ztráty — nezpracované zásilky, zpoždění doručení, eskalace od e-shopů. Požadavek na dostupnost byl 99.95% — a my jsme dodali 99.97%.
Řešení¶
Event-driven microservices¶
Jádrem nového systému je event-driven architektura postavená na microservices. Každá bounded context — tracking, routing, depo operace, billing, partner integrace — běží jako samostatný servis s vlastní databází (database-per-service pattern). Komunikace mezi službami probíhá asynchronně přes RabbitMQ message broker.
Tento přístup umožňuje:
- Nezávislý deployment jednotlivých služeb bez ovlivnění celého systému
- Horizontální škálování — bottleneck služby (např. tracking při peak load) lze škálovat nezávisle
- Fault isolation — selhání jedné služby nepoloží celý systém
- Technologickou heterogenitu — výpočetně náročné služby v .NET, datové pipeline v Pythonu
Real-time tracking engine¶
Srdcem systému je tracking engine zpracovávající stovky tisíc statusových aktualizací denně. Každá zásilka prochází desítkami stavů — od přijetí objednávky přes příjem na depo, třídění, expedici, naložení na vůz, doručení na výdejní box až po vyzvednutí zákazníkem.
Tracking engine je implementován jako stream processing pipeline:
- Ingestion layer — příjem událostí z IoT senzorů, skenování čárových kódů, GPS dat řidičů a API dopravců
- Processing layer — validace, deduplikace, enrichment (přidání geolokace, ETA výpočet) a business rules evaluation
- Storage layer — event store pro kompletní historii + materialized views pro rychlé dotazy
- Notification layer — push notifikace, SMS, email a webhooky pro e-shopy
Celá pipeline zpracovává události s mediánovou latencí pod 200ms od příjmu do notifikace.
Multi-tenant partner platforma¶
E-shopy a partneři přistupují k systému přes API gateway, který poskytuje:
- REST API s OpenAPI specifikací pro standardní integrace
- Webhook endpointy pro real-time notifikace o změnách stavu
- Bulk import/export pro velké e-shopy zpracovávající tisíce zásilek denně
- Self-service portál s dashboardy, reporty a konfigurací doručovacích pravidel
Multi-tenant architektura zajišťuje izolaci dat mezi partnery při sdílení infrastruktury. Každý partner má vlastní API klíče, rate limity, SLA a billing profil.
výdejní box management systém¶
výdejní boxy jsou plně automatizované výdejní boxy rozmístěné po celé ČR a dalších zemích. Každý výdejní box je v podstatě IoT edge device — s vlastním řídícím systémem, konektivitou (4G + Wi-Fi fallback), senzory teploty a vlhkosti, kamerovým systémem a elektromechanickými zámky.
Management systém zajišťuje:
- Remote monitoring — stav každého boxu, kapacita, teplota, konektivita
- OTA firmware updates — bezpečná aktualizace firmware přes encrypted channel
- Slot optimization — algoritmus přidělování schránek maximalizující využití kapacity
- Predictive maintenance — detekce anomálií (např. přehřívání, opakované selhání zámků) a automatické vytvoření servisního ticketu
Mobilní aplikace¶
Dodali jsme tři mobilní aplikace sdílející common codebase:
- klient app (zákazníci) — tracking zásilek, výběr výdejního místa, otevření výdejní boxu přes NFC/QR
- Driver app (řidiči) — optimalizované trasy, potvrzení doručení, skenování zásilek
- Depo app (operátoři) — příjem, třídění a expedice zásilek, inventura
Architektura¶
Infrastruktura¶
Celý systém běží na Azure Kubernetes Service (AKS) s multi-region deploymentem pro vysokou dostupnost. Infrastruktura je plně definována jako kód pomocí Terraform — od AKS clusterů přes managed databáze (Azure Database for PostgreSQL) až po networking a monitoring.
Klíčové komponenty infrastruktury:
- AKS clustery — production (3 node pools: system, compute, memory-optimized), staging, dev
- Azure Database for PostgreSQL — Flexible Server s read replikami pro reporting
- Azure Cache for Redis — session cache, rate limiting, real-time counters
- RabbitMQ — self-hosted na AKS (clustered, 3 nodes) pro event streaming
- Azure Blob Storage — dokumenty, labels, fotografie zásilek
- Azure CDN — statické assety a tracking widget pro e-shopy
Observability¶
Monitoring stack zahrnuje:
- Grafana dashboardy — business metriky (zásilky/min, delivery SLA), technické metriky (latence, error rate, resource utilization)
- Prometheus — sběr metrik ze všech microservices
- Loki — centralizované logování
- Distributed tracing — end-to-end trasování požadavku napříč službami
- Alerting — PagerDuty integrace s eskalačními politikami
CI/CD pipeline¶
Každý microservice má vlastní CI/CD pipeline:
- Build & test — unit testy, integration testy, contract testy (Pact)
- Security scan — SAST, dependency vulnerability check, container image scan
- Staging deployment — automatický deploy na staging environment
- Canary release — postupný rollout na produkci s automatickým rollbackem při zvýšení error rate
- Post-deploy verification — smoke testy a synthetic monitoring
Datové migrace¶
Migrace z legacy systému probíhala v několika fázích s dual-write patternem — data se zapisovala současně do starého i nového systému, čtení se postupně přepínalo na nový systém. Tento přístup umožnil:
- Nulový downtime při migraci
- Okamžitý rollback na legacy systém v případě problémů
- Postupné ověřování konzistence dat
- Migraci dokončenou za 3 měsíce bez ztráty jediné zásilky
Výsledky¶
Měřitelné přínosy¶
Po 12 měsících vývoje a postupného nasazení systém přinesl výrazné zlepšení klíčových metrik:
- 3× rychlejší zpracování zásilek — od příjmu na depo po expedici se doba zpracování zkrátila z průměrných 45 minut na 15 minut díky automatizaci a optimalizaci workflow
- 40% snížení chybovosti — automatická validace, deduplikace a business rules engine eliminovaly většinu manuálních chyb při zadávání a třídění
- Real-time visibility — partneři i zákazníci vidí aktuální stav zásilky s latencí pod 1 sekundu od události
- 99.97% uptime — překonání SLA cíle 99.95%, včetně bezproblémového zvládnutí Black Friday s 3× běžným objemem
- 50+ integrovaných dopravců — standardizované integrační rozhraní zkrátilo onboarding nového dopravce z týdnů na dny
Provozní přínosy¶
- Self-service pro partnery — e-shopy si samy konfigurují doručovací pravidla, sledují metriky a řeší reklamace bez nutnosti kontaktovat support
- Prediktivní údržba výdejní boxů — automatická detekce problémů snížila počet servisních zásahů o 30%
- Škálovatelnost — systém je připraven na 2× aktuální objem bez nutnosti architektonických změn
Strategický dopad¶
Nový logistický IS se stal páteří technologické transformace klienta. Umožnil expanzi do dalších zemí bez nutnosti budovat separátní systémy, otevřel cestu k novým produktům (same-day delivery, cross-border) a dal firmě konkurenční výhodu v podobě superior zákaznické zkušenosti a operační efektivity.
Technologie¶
Projekt využívá moderní technologický stack optimalizovaný pro vysoký throughput a dostupnost. Backend microservices kombinují .NET (pro transakční logiku s vysokými nároky na výkon) a Python (pro datové pipeline, ML modely pro ETA predikce a automatizační skripty). PostgreSQL slouží jako primární databáze s Redis pro caching a RabbitMQ pro asynchronní messaging. Celá infrastruktura běží na Azure Kubernetes Service a je plně spravována přes Terraform. Monitoring zajišťuje Grafana s Prometheus a Loki stackem.