Subscriptions vs Polling
Choose the right approach for your data update needs.
Use Subscriptions Whenβ
- Building real-time dashboards
- Monitoring live protocol activity
- Data changes frequently (multiple times per minute)
- User expects immediate updates
- Creating notification systems
Example:
subscription WatchMyPositions($cursor: [positions_stream_cursor_input]!) {
positions_stream(cursor: $cursor, batch_size: 10) {
id
shares
vault { current_share_price }
}
}
Use Polling Whenβ
- Data updates infrequently (e.g., daily statistics)
- Real-time updates aren't critical for UX
- Minimizing server connections is important
- Building static reports or analytics
Example:
query GetStats {
stats {
total_accounts
total_atoms
total_triples
}
}
# Poll every 30 seconds or on user action
Guidelinesβ
- Polling interval: 30-60 seconds for most use cases
- Subscription batch_size: 10-50 items
- Handle reconnections: Store last cursor for resumability