This page in the docs states the following:
When to use subscriptions
In the majority of cases, your client should not use subscriptions to stay up to date with your backend. Instead, you should poll intermittently with queries, or re-execute queries on demand when a user performs a relevant action (such as clicking a button).
You should use subscriptions for the following:
- Small, incremental changes to large objects. Repeatedly polling for a large object is expensive, especially when most of the object’s fields rarely change. Instead, you can fetch the object’s initial state with a query, and your server can proactively push updates to individual fields as they occur.
- Low-latency, real-time updates. For example, a chat application’s client wants to receive new messages as soon as they’re available.
I’d like a definitive answer on WHY. Why not use subscriptions for everything?