Skip to content

docs(integration-toolkit): poll delivery payload mapping and pollable outbound hardening - #159

Draft
karlrank wants to merge 9 commits into
mainfrom
docs/poll-jsonata-transform
Draft

karlrank wants to merge 9 commits into
mainfrom
docs/poll-jsonata-transform

Conversation

@karlrank

Copy link
Copy Markdown
Member

Why

Documents the poll delivery JSONata transform and the pollable outbound hardening (integration-toolkit-api !242 and !243).

What

  • pollable-outbound.md:
    • a new Payload Mapping section: evaluation, bindings, output rules, the 5 MiB cap, mapping_version, failure handling per poison_policy, redrive with reapply_mapping, the preview endpoint, and a multi-org middleware example using key/value maps
    • envelope (org_id, mapping_version) and DLQ/redrive field updates
    • late arrivals, and deduplication on use_case_id + event_id
    • internal keys are stripped
    • webhook vs poll output is not guaranteed to be identical
    • fixed an existing broken anchor
  • configuration.md:
    • jsonata_expression for poll
    • a new general Event Filter section (it currently applies to poll and file proxy deliveries)
  • Cross-links in key-value-maps.md, overview.md and use-cases.md.
  • monitoring/codes.md is generated. Regenerate it with npm run update-monitoring-codes after the backend MRs merge.

Verification

npm run build passes (onBrokenLinks: 'throw'), with no broken links or anchors.

Merge once the backend MRs are released.

🤖 Generated with Claude Code

Karl Rankla added 9 commits September 25, 2026 13:09
Add a Payload Mapping section to Pollable Outbound: enqueue-time
evaluation, bindings, object output, mapping_version, failure handling
per poison_policy, redrive with reapply_mapping, the mapping preview
endpoint and a multi-organization example. Document the org_id and
mapping_version envelope fields, late-arrival re-keying with
MSG_LATE_ARRIVAL, and removal of internal keys from poll payloads.
…ed pages

Update configuration, key/value maps, overview and use cases, which
stated that poll delivery applies no JSONata transform.
Describe event_filter as a general outbound use case setting: input,
bindings, result, error handling, save-time validation, and which
deliveries it applies to. Link it from the poll payload contract.
… backend behaviour

Late arrivals are measured against everything already leased, carry no
envelope marker and are signalled only by MSG_LATE_ARRIVAL. A rare lease
race can deliver one event under two message ids, so consumers should
deduplicate on use_case_id plus event_id.
…ehaviour

Deduplicate by event_id, count expired leases toward the late-arrival
watermark, and state that internal keys are stripped before storage and
before the payload mapping runs.
…ture behaviour

Document the preview endpoint's 400/404 rules, the required
event_catalog_event with event_id, the 500 ms and depth guardrails,
enqueue-time re-validation, the mapping_error format, zero delivery
attempts on failed-mapping dead letters, and the fix, unblock, redrive
recovery workflow.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant