Skip to content

Available now

Readiness checklist ​

Work through the lines that apply to you (see Which parts apply to you). Each points at the page that tests it. When your lines are ticked, you have a result you can share with a publisher.

Every producer ​

CheckPage
My test suite validates envelope and payload against the pinned SOM 1.0 schemas, with format assertion onValidate
All 18 published positive examples pass my validator; all 20 negative ones failProve your error paths
My product sends som_version: "1.0.0", a UUID message_id per message and a SOM system_typeThe envelope
system_id is configurable per installationPlan your integration
The token is cached and refreshed before expiry; the secret lives in a secret store and is rotatedCredentials
Every message for a story carries its correlation_id; reactions carry causation_idRun a whole story
My product never sends two messages for the same story at onceRun a whole story
Retries reuse the same message_id and body, only for timeouts, 429 and 5xx, with backoffRetries and idempotency
400, 403 and 413 alert and don't retryHandle the bus's answers
No media or long content in messages: references only, well under 240,000 bytesThe envelope
The policy cases behave as documentedProve your error paths

Producers of story.context ​

CheckPage
Every snapshot is the whole story; the portal's diff between snapshots shows only intended changesRun a whole story
sequence_number strictly increases and updated_at never goes back, across restarts and failoversRun a whole story
A whole story of seven or more snapshots is accepted end to endRun a whole story
Terminal stories can't be revived, and the 409 is shown to the user sensiblyRun a whole story
After a 409 my product resynchronises from current state instead of resendingHandle the bus's answers
Every sequence case behaves as documentedProve your error paths

Consumers ​

CheckPage
Acknowledge after handling; enough visibility for slow work; alert on the dead-letter queueHTTPS pull API, Dead-letter queues and replay
Snapshots are applied as whole replacements; the highest sequence_number per story winsOrder, duplicates and snapshots
Idempotent on message_id: a replay changes nothingOrder, duplicates and snapshots
Unknown message types, extensions, fields and enum values are ignored; no branching on som_versionOrder, duplicates and snapshots
Consumer tests T1 to T7 end in the expected stateTest your consumer
Every consumer scenario of a test run passesTest runs

Skill executors ​

CheckPage
Warnings validate: UUID warning_id, string skill_warning_ref, a SOM system_typeA warning that validates
Trigger, no-trigger, redelivery and killed-story tests behave as documentedTest a skill by hand
Every case of the skill harness passes, apart from pending specTest runs
Dependencies on message types without a 1.0 schema are listed as provisionalTopics without a 1.0 schema

Validate in your own tests ​

Catch schema mistakes before the bus sees them:

  1. Take the schemas from the SOM repository at the 1.0 release, and pin the commit. The bus uses 7297fef9adc6d14a74bdd7550c78decaa099a1ad.
  2. Use a JSON Schema 2020-12 validator, with format assertion on for uuid and date-time. Most validators only annotate formats by default: then a message_id of "msg-1" passes your tests and fails on the bus with envelope.format.uuid.
  3. Validate the envelope with envelope.schema.json, then the payload with the schema chosen only by message_type (see Message families).
  4. Add the one rule the schema can't express: som_version must not be before 1.0. Send "1.0.0".
  5. Run the published positive and negative examples through it. If your validator disagrees with any of them, it isn't set up like the bus.

Share your result ​

Publishers compare vendors on this evidence: see how they read it in Evaluate your vendors.

The cases the bus grades itself go into a results statement: made from your complete test runs, in fixed words, and shared with a publisher or by link until a date you choose.

For everything else on this checklist, write it up. Keep it short and factual, so a publisher can compare vendors:

Product:        Acme NCS 4.2.0
Environment:    SOM Managed Bus Sandbox, 2026-09-24
Suite:          som-1.0.0+lib-0.2.2 (SOM schema pack 7297fef)
Roles tested:   producer story.context, system.audit; consumer skill.warning.raised, telling.*
Result:         passes som-bus suite som-1.0.0+lib-0.2.2, on the checks listed below
Checks:         [the ticked lines above]
Not tested:     [what doesn't apply, or isn't available yet]
Known gaps:     [anything unticked, and why]
  • Say "passes som-bus suite som-1.0.0+lib-0.2.2", and list the checks. Never "SOM certified" or "SOM compliant": SOM defines no certification, and RND certifies nothing.
  • Name what you didn't test. Publishers trust a result more when it states its limits.
  • Keep the message_ids of your key test messages. RND can confirm verdicts from them.

SOM is an open standard maintained by the SOM working group. This service is not endorsed by it.