PK
Praveen Kumar
@praveen97uma
Bolt: PhonePe's Low latency Data Streaming Platform over Websockets
Submitted Apr 20, 2025
Topic of your submission:
Platform engineering
Type of submission:
30 mins talk
I am submitting for:
Rootconf Annual Conference 2025
This talk dives into the engineering behind Bolt, PhonePe’s low-latency, high-throughput data streaming and communication platform built over WebSockets. Designed to handle real-time market data distribution for share.market, Bolt today supports ~2 million concurrent connections, 100k messages per second at peak, and 2 billion+ message deliveries per day.
We’ll walk through our journey of building Bolt from the ground up — addressing the challenges of delivering exchange-grade market data to hundreds of thousands of users in real time, and how we leverage this infrastructure to drive various flows and transactions in the PhonePe Consumer app.
The session will cover:
- System architecture and evolution
- Key trade-offs around performance, consistency, and resilience
- Deep dives into Java-level optimizations like zero-copy, off-heap memory, memory pooling, lock-free data structures, and more
- Managing state at scale, and building a custom communication protocol tuned for latency and throughput
Takeaways
- An insight into the technical problems at PhonePe and our approach to solving them
- Techniques other organizations and engineers can leverage to build similar low latency systems
Audience
Backend engineers, architects and Engineering leaders interested in gaining insights building realtime message push platform
Bio
Devansh Suwalka
Devansh is a Software Engineer at Share.Market, PhonePe with around 4 years of experience building distributed systems and the core platforms that power share.market.
Praveen Kumar
Praveen is an architect at Share.Market, PhonePe, with over 12 years of experience designing and building distributed systems and platforms across diverse domains including capital markets, customer experience, and AI/ML.
{{ gettext('Login to leave a comment') }}
{{ gettext('Post a comment…') }}{{ errorMsg }}
{{ gettext('No comments posted yet') }}