Project Kijiji is a real-time platform that detects African internet routing inefficiencies (trombone detours) and predicts where new IXP peering agreements would reduce latency. It uses a GraphSAGE GNN trained on BGP event streams, with Tinybird as the real-time data pipeline. Key architectural decisions include denormalizing GNN feature vectors into every event at ingest time, using Tinybird Pipes for server-side pre-aggregation before model inference, and an inverse-GDP-weighted MSE loss function that prioritizes accuracy for cities with the worst infrastructure. The model predicts an 87ms latency reduction for a Kinshasa–Lagos peering link affecting four cities currently without IXP presence. The post covers the full architecture, data model, schema evolution strategy, and engineering trade-offs for building reliable real-time ML systems on fragile networks.

10m read timeFrom tinybird.co
Post cover image
Table of contents
The hook: software that has to survive NairobiThe problem I'm actually solvingThe data shape: designing for the GNN from day oneThe ingestion layer: piping BGP events into TinybirdWhy Tinybird for this workloadThe AS path: a note on schema evolutionThe loss function: who the model servesThe numbersWhat I would tell myself at the startWhat's next

Sort: