SOM Managed Bus · operated by RND Solutions
solutions
Menu
Sign inRequest access

Vendor quick start

On the bus in about 15 minutes.


Five missions take your product from no account to a green test run on a live SOM 1.0 bus. Each one has a single goal, one block to copy, and a clear “done when”. It takes about 15 minutes of your own time, once RND has approved your access. That one-time review is the only manual step: after it, you invite your colleagues to your workspace yourself.

  1. 00See the bus answer30 sec
  2. 01Request access2 min
  3. 02Get your keys3 min
  4. 03Send your first message3 min
  5. 04Play your part5 min
00

Mission 0 · 30 sec

See the bus answer

No account needed. Every message gets one of these answers, with the rule behind every refusal.

  • 202 accepted

    Valid SOM 1.0, in order for its story, from a system allowed to send it. Delivered to every subscriber.

  • 200 duplicate

    The same message_id again. Safe to retry: nobody receives it twice.

  • 409 refused

    An older snapshot after a newer one. Refused before any consumer sees it, with the rule behind it.

    sequence_number.not_increasing

Done when

You know what the gateway will tell your product, and why.

01

Mission 1 · 2 min · Via RND, once

Request access

Tell us who you are and what you’ll test. An RND engineer reviews it once; that is the only wait to get started.

  1. Fill in the Request access form
  2. Keep your REQ-… reference
  3. Your sign-in arrives by email once approved

Done when

You have a REQ-… reference. After approval, you have an email with your sign-in.

02

Mission 2 · 3 min

Get your keys

Sign in, join your workspace and create the app that will publish.

  1. Sign in with the temporary password, set your own and add an authenticator app
  2. Accept the invitation to your workspace
  3. Apps → New app: name it and claim the system_id it stamps
  4. Connect: choose the message types it may publish
  5. Copy the client id, secret and workspace id. The secret is shown once
export CLIENT_ID=c…          # from Connect
export CLIENT_SECRET=sbs_…   # shown once: put it in your secret store
export WORKSPACE=w…          # shown with the credentials
export SYSTEM_ID=acme-ncs-01 # the system_id your app claimed

Done when

You have a client id, a client secret and your workspace id.

03

Mission 3 · 3 min

Send your first message

Get a token, dry-run a real SOM 1.0 story snapshot, then publish it.

TOKEN=$(curl -s https://api.sombus.rnd-solutions.net/v1/oauth/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d grant_type=client_credentials | jq -r .access_token)

curl -sO https://raw.githubusercontent.com/storyobjectmodel/som/7297fef9adc6d14a74bdd7550c78decaa099a1ad/examples/hurricane-run/hurricane-01.json
STORY=$SYSTEM_ID-$(date +%s)
CORRELATION_ID=$(uuidgen | tr A-Z a-z)   # one per story: reuse it for every message about it
jq --arg mid "$(uuidgen | tr A-Z a-z)" --arg cid "$CORRELATION_ID" \
   --arg story "$STORY" --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" --arg sys "$SYSTEM_ID" \
  '{som_version: "1.0.0", message_id: $mid, correlation_id: $cid, message_type: "story.context",
    timestamp: $ts, originating_system: {system_id: $sys, system_type: "ncs"},
    topic: "som.story.context", payload: (. + {story_id: $story})}' hurricane-01.json > msg.json

API=https://api.sombus.rnd-solutions.net/v1/tenants/$WORKSPACE
curl -s -X POST $API/validate -H "Authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' --data-binary @msg.json   # dry run: publishes nothing
curl -s -X POST $API/messages -H "Authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' --data-binary @msg.json   # {"accepted":true,…}

Done when

The bus answers {"accepted":true} and your story is in the portal’s Story timeline.

04

Mission 4 · 5 min

Play your part

Receive what your product consumes, or grade what it produces, and share what passed.

  1. Consumer: create a consumer connection before you publish (it receives only what is published after it is ready), then read your queue with the HTTPS pull API
  2. Skill executor: start a test run and read each case, expected against actual
  3. Producer: publish a whole story and check every verdict in Activity
  4. Share a results statement with a publisher, or by link
curl -s -H "Authorization: Bearer $CONSUMER_TOKEN" \
  "https://api.sombus.rnd-solutions.net/v1/tenants/$WORKSPACE/consumers/$CONSUMER_ID/messages?wait=20"

Done when

Your part works on the bus: a queue read, a whole story accepted, or a test run green, with a results statement that says exactly what passed.

After mission 4

You’re on the bus. Now make it your product’s.

Your workspace’s Overview keeps a checklist of these steps that ticks itself as you go. From here: run a whole story, handle every answer, and read the rules your consumers must follow.

Synthetic data only

The sandbox is for test traffic. Payloads are kept for up to 30 days (the replay archive) and never written to logs.

Results, not badges of honour

A results statement says exactly which cases passed against which suite. SOM defines no conformance tiers, so neither do we.

Stuck on a mission?

Press Ask RND on any portal page. An RND engineer replies by email.