Development About 1 min read

Development and integration

These pages cover adapter patterns, language choices and implementation examples. Start with the interface requirements, then plan validation, error handling and recovery.

Overview#

This section is the bridge between protocol specifications and maintainable integration software. It emphasizes explicit state, versioning, secure identity, bounded resources, deterministic failure, observability, and safe physical consequences.

Reference examples use synthetic inputs and documentation domains, and exclude physical actuation. Evaluate them only in an isolated, authorised environment with pinned versions, bounded resources, and recorded evidence.

Contents#

Design priorities#

  1. Model roles, identity, authorisation and state transitions before endpoints or libraries.
  2. Treat every byte, field, callback and SDK object as untrusted until validated.
  3. Make timeouts, retries, idempotency, ordering, replay and reconciliation explicit.
  4. Bound memory, queues, connections, payloads, parsing work and log output.
  5. Separate observation, configuration, administration and physical actuation capabilities.
  6. Preserve correlation from external request through normalised event and device outcome.
  7. Keep product/version quirks in adapters; keep the domain model vendor neutral.

Language selection#

Language Primary reference use Reviewed baseline on 25 August 2026
Python Offline fixtures, protocol exploration, parsers and small clients Python 3.14.7
TypeScript Browser/Node HTTP, WebSocket, MQTT and WebRTC integrations TypeScript 7; Node.js 24 LTS
C# Enterprise VMS/PACS SDKs and Windows services .NET 10 LTS; C# 14
Go Concurrent gateways, collectors and network services Go 1.27
C Embedded, serial and constrained binary framing C17 baseline unless SDK requires another edition
C++ Native media/device SDKs and RAII based integrations C++23 baseline unless SDK requires another edition

Pin the exact patch and dependency versions in each integration project; the table is a documentation review baseline, not a compatibility guarantee. Official release sources are maintained in each language page.

Sources#