Grab

How we seamlessly migrated high volume real-time streaming traffic from one service to another with zero data loss and duplication

Dec 5, 2024Md Riyadh
How we seamlessly migrated high volume real-time streaming traffic from one service to another with zero data loss and duplication
SummaryAI, from the source post

This post details a custom time-based switchover logic for migrating high-volume real-time streaming traffic between services with zero data loss and duplication. The approach involves moving stream processing code to a shared `/commons` directory, enabling both old and new services to use the same logic. Temporary sink resources are created for validation. A `map[string]time.Time` in the shared code schedules the switchover for each stream, ensuring simultaneous transition. The deployment includes buffer time, close monitoring, and a post-switchover validation period where the old service consumes but does not write. Learnings emphasize the effectiveness of this temporary measure for specific use cases but caution against its general use due to potential rollback inconsistencies.

More from the Data Production Issue (DPI) Operationalization trail