Skip to content

Gateway gRPC

When To Use

Use this archetype when devices are not integrated directly, but through a local gateway process or service, typically over gRPC.

Core Shape

  • shared transport owns gateway process or channel lifecycle
  • protocol serializes per-device RPCs
  • event stream manager consumes gateway events
  • synchronization features translate PQ models to gateway models
  • enrollment services call protocol methods through the same abstraction boundary

Typical Files

  • Communication/Transport.cs
  • Communication/Protocol.cs
  • Communication/<GatewayManager>.cs
  • Communication/<EventStreamManager>.cs
  • Capabilities/AccessSynchronization.cs
  • optional Capabilities/Enrollment/*.cs
  • Commands/*.cs

Minimal Flow

gateway process -> gRPC stream -> transport callback -> event translation -> Thing method -> PQ event

command or sync -> protocol queue -> gRPC call -> result

Common Pitfalls

  • treating gateway availability as separate from device availability without documenting both
  • bypassing the protocol queue for some RPCs
  • embedding enrollment-specific logic into generic transport code
  • not recording which device capabilities depend on gateway support

Good First Deliverable

Start the gateway, connect one device, fetch one status call, and translate one real-time event.