Independent · Android · Google Play
The Ballers
At a high level: client → ingestion → real-time sync → storage → delivery.
Client
→
Ingestion
→
Realtime
→
Storage
→
Delivery
1. Client layer — mobile app
- Built with Flutter (Android-first)
- Game creation and team management
- Real-time score input and player stats UI
- Local state for fast interactions on court
- Syncs with backend for persistence
- Interaction layer — everything the user touches
2. Ingestion layer — APIs / SDK
- App sends data via Firebase SDK to Firestore
- Firestore for persistent storage
- Realtime path for streaming across users (low latency)
- Events: score updates, team changes, player actions, game state
- Backend validates and processes incoming requests
3. Real-time sync & processing
- Firebase Realtime Database / Firestore
- Live updates across devices
- Multiplayer sync — multiple users on the same game
- Low-latency propagation so scores stay consistent
4. Storage layer
- Game history and game summaries
- Player profiles
- Teams and tournament data
- Location-based feed for teammates / followed activity
5. Delivery / consumption
- UI renders live scores, summaries, and player stats
- Multiple users can view the same game in real time