It implies adding a way to version the protocol. Either by adding a version field in extensions when we send the subscription payload to the subgraph. Or by setting a specific accept header like we do for multipart subscription protocol
### Tasks
- [ ] https://github.com/apollographql/router/issues/3937
- [ ] https://github.com/apollographql/router/issues/3929
- [ ] https://github.com/apollographql/router/issues/4115
- [x] Optional: benchmarks
- [x] document why it can be dangerous to disable the heartbeat
- [ ] https://github.com/apollographql/router/issues/4258
- [ ] https://github.com/apollographql/router/issues/4263
- [ ] https://github.com/apollographql/router/issues/4269
- [x] callback: create nice changelog to explain changes from preview to GA
- [ ] https://github.com/apollographql/router/issues/4280
- [ ] https://github.com/apollographql/router/issues/4318
- [ ] https://github.com/apollographql/apollo-server/pull/7793
It implies adding a way to version the protocol. Either by adding a
versionfield in extensions when we send the subscription payload to the subgraph. Or by setting a specificacceptheader like we do for multipart subscription protocol