Skip to content

Build an HPP/2 plugin

contracts/v2/proto/hpp2.proto is the sole wire authority. A plugin initiates one bidirectional gRPC session over its generation-private Unix socket, identifies the Host-bound generation, advertises capability provisions, and waits for lifecycle and broker traffic.

  • monotonic envelope sequence numbers;
  • unique correlation IDs;
  • exactly one terminal result per request;
  • bounded request and subscription queues;
  • cancellation and backpressure handling;
  • graceful quiesce and shutdown acknowledgement;
  • no reopening a request after a terminal message;
  • effects and subscriptions owned by the generation lifetime.

Unknown or late terminal frames are diagnostics. They never reopen completed work.

The immutable plugin manifest is governed by contracts/v2/plugin-manifest.schema.json. It declares identity, exact artifact, provided/required capabilities, resources, and requested permissions. Never put secrets in the manifest.

Start from the generated SDK for your language, then validate against the golden wire vectors and the full seven-runtime qualification before describing the transport as production-ready.