5. www.openweb.nl
GraphQL compared to OpenAPI - similarities
Fully typed
Language agnostic
Open source foundation
extensive tooling available
typically over http
6. www.openweb.nl
GraphQL compared to OpenAPI - differences
One schema
Custom scalar
query, mutation and
subscription
Client focussed
Introspection
Multiple documents
Custom format of String
get, put, post, delete, options, head,
patch, trace
Server focussed
Documentation tooling / Swagger UI
7. www.openweb.nl
GraphQL over websockets
Description of protocol: https://github.com/apollographql/subscriptions-
transport-ws/blob/master/PROTOCOL.md
This protocol is commonly used as a reference, but
it’s not always clear. But most of the clients and
servers supporting subscriptions, implement most
of it..
25. www.openweb.nl
What we learned
▰ Four JVM server implementations supporting
subscriptions, each with pros and cons.
▰ Performance till about 300 new subscriptions/sec.
▰ Before saying yes make sure it’s a good option for
your use case. It’s a part of GraphQL that is quite
experimental.
26. www.openweb.nl
Future of subscriptions
▰ Implementation in Rust is almost there.
▰ Maybe move to Rsocket or gRPC instead of
websockets?
▰ Confluent might add GraphQL subscriptions to
the Kafka ecosystem at some point.