Integration checklist
Use this before calling a new or changed service integration done.
Shape
- The service id is final and matches the intended public contract.
service_sourcesandtransportsboth reflect the same ingress set.- Any action that downstream nodes bind from exposes
result_event. supports_nodesis what you expect: condition, lookup and mapping by default, plus rate-limit only when enabled.
Wiring
TRIGGERS_NATS_URLis present everywhere the service runs.TRIGGERS_KAFKA_BROKERSis present anywhere Kafka ingress is declared.- Kafka ingress has a viable ownership path in that environment: either the SDK runtime can create the canonical
triggers_v2_<service>_inboundtopic, or that same canonical topic is pre-provisioned out of band. - Any released flow that retargets Kafka delivery to a non-canonical topic uses a topic that already exists, because the SDK will not create it; if it is missing, reconcile fails closed and Kafka ingestion stays unavailable until the topic exists or the flow is corrected.
- Any configured
TRIGGERS_KAFKA_INGRESS_TOPIC_*overrides parse cleanly. - Anywhere dedup or rate limiting is enabled, the SDK Redis contract is satisfied with either
TRIGGERS_REDIS_URL,TRIGGERS_REDIS_URL_SECRET_NAME, or host/password inputs plus optionalTRIGGERS_REDIS_DB. - Any Redis
*_SECRET_NAMEpath also hasKEY_VAULT_URL. - HTTP services have a correct public manifest target, not just a listen socket.
Runtime
GET /api/v2/services/<service>shows the new manifest and the service isonline.- Heartbeats are arriving.
- One released flow has been exercised end to end.
- Failure paths produce the expected retry or DLQ behavior.
Docs and examples
- Project-local docs match the current API surface.
docs_uimatches the source docs.- Example code uses the same ingress names and canonical targets as production code.