Implement Relay connections in a GraphQL schema
Build the edges, cursors, and pageInfo a Relay-style connection promises, and get the page flags right rather than guessing them.
How-to › Section 4
GraphQL, gRPC and protobuf, webhooks, and event streams, alongside or instead of REST, from both the producer and consumer side.
5 guides in 4 topics. Every guide compares its approaches and shows the output its commands printed.
Consuming and exposing GraphQL: typed clients (graphql-codegen, Apollo, urql, graphql-request, gqlgen, Ariadne, Strawberry), persisted queries, connections pagination, batching and the N+1 problem, federation, REST-to-GraphQL gateways, and when to add a GraphQL layer at all.
Build the edges, cursors, and pageInfo a Relay-style connection promises, and get the page flags right rather than guessing them.
Deprecate the field with a reason naming its replacement, count per-client usage over a release cycle, and let a CI gate hold the removal until the window passes.
Protobuf IDL, buf and protoc codegen, gRPC-Web and Connect, grpc-gateway REST transcoding, streaming RPCs, deadlines and metadata, buf breaking for .proto versioning.
Write a proto3 file with a versioned package, two messages, a unary service, and reserved numbers, then compile it with buf and lint it two ways.
Both sides of a webhook: signature verification (Standard Webhooks, Stripe, GitHub, Slack), replay protection, queue-first ingestion, idempotent handlers, retries with backoff and dead-letter queues, ordering, fan-out, describing webhooks in OpenAPI 3.1, local tunnels (ngrok, cloudflared), and testing (Svix Play, Hookdeck, recorded payloads).
Check the signature, the timestamp and the raw body of an incoming webhook in PHP, and keep two secrets valid so a rotation costs nobody a delivery.
Event-driven integration: AsyncAPI descriptions, Kafka, NATS, SQS and SNS, CloudEvents, the outbox pattern, consumer groups, schema registries, at-least-once versus exactly-once.
Describe one Kafka topic in AsyncAPI 3.0, from the SASL server to the keyed message, then validate it, lint it and pin which way each application faces.
Retries, timeouts, pagination and auth are the same problems in every client. Voxgig generates them from your OpenAPI description, in 23 languages, from one model.