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

Newsroom workflows

Seven newsroom moments, one bus.


Each workflow is a real newsroom moment told as the SOM 1.0 messages your systems already exchange: who sends what, who receives it, and what the bus does at every step. Find your product, then see what a publisher gets and what a vendor proves.

  1. 01Breaking story, every screen in stepstory.context
  2. 02Media lands, the story knowsdelivery.media_available · story.context
  3. 03Tip-line clip to verified assetstory.context · skill.warning.raised
  4. 04Standards gate before airstory.context · link.* · system.audit · telling.*
  5. 05AI skill as a second pair of eyesstory.context · skill.warning.raised
  6. 06Kill a story everywherestory.context · link.* · telling.* · system.audit
  7. 07Plug a new system into a live newsroomstory.context · telling.* · skill.warning.raised

Find your product

Where your system plays a part.

Most products both publish and receive. Pick your row and follow the workflows it's marked in; those are the ones to test first.

● publishes · ○ receives · ◐ both
Your product01020304050607
Newsroom systemNCS, planning, rundown: owns the story●◐◐◐◐●
Media storeMAM, ingest, tip line●●
GraphicsLower thirds, maps, prompter○○◐○◐
PlayoutBroadcast and stream playout○◐◐
Web CMSSite, app and social publishing○○○○○◐
Skill executorAI skills beside a tool◐◐
Standards deskCompliance and verification tooling○○○◐○
AutomationStudio and channel automation◐

How to read a workflow

Every step is one message, and one decision by the bus.

202 accepted

Valid SOM 1.0, in order for its story, sent by a system allowed to send it. Delivered to every system that subscribed.

200 duplicate

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

400 / 403 / 409 refused

Refused before any system sees it, with the rule behind it. Every rule links to its page in the docs.

No message

Something you do in the portal or over the API, such as a replay from the archive. Each vendor runs its own part of a workflow in its own workspace; a publisher rehearses the whole workflow in its house.

01

Breaking story, every screen in step

A hurricane story goes from developing to breaking in three hours. The newsroom system publishes seven versions; graphics, the website, playout and the standards desk must all show the same one.

story.context
  1. 1
    Newsroom system
    story.context

    Version 1: story ACTIVE, phase DEVELOPING, priority HIGH, one verified wire source.

    202 accepted

    Checked against SOM 1.0, then delivered to every system that subscribed to story.context.

  2. 2
    Newsroom system
    story.context

    The same version again, after a network timeout: same message_id, same content.

    200 duplicate

    Recognised as a duplicate. Nobody receives it twice.

  3. 3
    Newsroom system
    story.context

    Phase BREAKING, priority URGENT. Versions 2 to 6 follow as the facts come in.

    202 accepted

    Delivered in order per story: every system sees version 5 before version 6.

  4. 4
    Newsroom system
    story.context

    A lagging replica re-sends version 2 after version 7 has gone out.

    409 refused

    Refused before anyone sees it. A stale version would roll every screen back.

    sequence_number.not_increasing
  5. 5
    Newsroom system
    story.context

    Version 7: "Cat 4 landfall; 40,000 outages confirmed", with an official source added.

    202 accepted

    Every consumer converges on version 7.

The publisher gets

Every screen shows the same version of the story, and no stale or repeated update can roll one of them back.

The vendor proves

Your newsroom system sends complete, strictly increasing snapshots. Your consumer keeps the highest version per story.

02

Media lands, the story knows

The press conference feed arrives in the media store. A speech-to-text model transcribes it, and a person confirms the transcript before anyone quotes it.

delivery.media_availablestory.context
  1. 1
    Media store
    delivery.media_available

    The feed has arrived: asset_id, where it lives (a media-store URI) and its time range.

    202 accepted

    A reference, never the media: messages over 240 KB are refused.

    message.too_large
  2. 2
    Newsroom system
    story.context

    The next version lists the feed as a VIDEO asset, READY, the PRIMARY evidence, pointing at the store.

    202 accepted

    Checked against the story's history: assets are never silently dropped and never change type.

    snapshot.assets_dropped
  3. 3
    Newsroom system
    story.context

    A TRANSCRIPT asset derived from the feed, with provenance: author MODEL, confidence 0.97, review PENDING.

    202 accepted

    Every system sees that it's machine-made and not yet reviewed.

  4. 4
    Newsroom system
    story.context

    The standards desk has read it: review CONFIRMED, with the reviewer and the time.

    202 accepted

    The website and graphics can now quote it.

The publisher gets

AI-made material is labelled as AI-made everywhere, and every system can see whether a person has confirmed it.

The vendor proves

Your media store announces arrivals the newsroom system can resolve. Your tools respect provenance and review state.

03

Tip-line clip to verified asset

A viewer sends a flood clip with no story attached. A model thinks it belongs to the hurricane story. Nobody uses it until a person has verified it.

story.contextskill.warning.raised
  1. 1
    Media store
    story.context

    An ORPHAN story holding the clip: source USER_GENERATED, UNVERIFIED. A model's MATCH to the hurricane story, confidence 0.91, review PENDING. A VERIFICATION gate blocks the clip.

    202 accepted

    The orphan is a real story, so every system can see the clip exists and is waiting.

  2. 2
    Skill executor
    skill.warning.raised

    Severity flag: the clip rests on an unverified source; confirm before matching it to a story.

    202 accepted

    Checked and delivered. A skill is meant to raise warnings and never publish story.context (RND's recommendation, not a SOM rule); what the bus checks is its grants.

  3. 3
    Standards desk
    Verify the clip

    The verification desk checks the location and the sender, and approves.

    No message

    A decision people make, recorded in the next message.

  4. 4
    Newsroom system
    story.context

    The hurricane story's next version adds the clip; gate APPROVED, match review CONFIRMED.

    202 accepted

    Ordered after the versions every system already has.

The publisher gets

User-generated content never goes out on a model's word. The match, its confidence and the person's decision travel with the story.

The vendor proves

Your ingest or matcher publishes MATCH assertions with provenance. Your tools honour a pending gate.

04

Standards gate before air

The outage lower third is built, but the figure is unconfirmed. It's booked into the bulletin and can't go to air until standards clears it.

story.contextlink.*system.audittelling.*
  1. 1
    Newsroom system
    story.context

    A compliance flag, severity HIGH: "Outage figure unconfirmed pending authority statement".

    202 accepted

    Delivered to every system that shows or airs the story.

  2. 2
    Graphics
    link.committed

    Lower third → the one o'clock bulletin, compliance_gate_status PENDING.

    202 accepted

    Playout receives the booking and knows it isn't cleared yet.

  3. 3
    Graphics
    link.gate_changed

    Graphics tries to clear its own gate.

    403 refused

    The graphics connection was granted link.committed only, so it can't clear a gate. In a house, the house grants each vendor connection what it may publish.

    producer.message_type_not_allowed
  4. 4
    Standards desk
    link.gate_changed

    The authority confirms 40,000 outages: gate CLEARED.

    202 accepted

    Playout can now take it.

  5. 5
    Standards desk
    system.audit

    Action CLEARED, target the link, who cleared it and why.

    202 accepted

    The clearance is on the record, in order with the story.

  6. 6
    Playout
    telling.started

    The lower third is on air: link_id, scheduled and actual start. telling.ended follows.

    202 accepted

    Every system knows what aired, and when.

The publisher gets

Nothing airs past a pending gate, and every clearance says who, when and why.

The vendor proves

Graphics books with gate status. Playout airs only a cleared link. Compliance tooling clears and audits.

05

AI skill as a second pair of eyes

A house style skill and a standards skill read every version of a court story. They raise warnings for editors; they never edit.

story.contextskill.warning.raised
  1. 1
    Newsroom system
    story.context

    A new version: the headline uses an informal term the style guide forbids.

    202 accepted

    Delivered to the skill executor, beside the tools that subscribed.

  2. 2
    Skill executor
    skill.warning.raised

    Severity flag, rule house-style-001, affected field headline: "Informal term in headline."

    202 accepted

    Checked against SOM 1.0 and delivered. A flag marks for review; it withholds nothing.

  3. 3
    Skill executor
    skill.warning.raised

    Severity hold on the casualty figure: unconfirmed.

    202 accepted

    Carried to every tool that subscribed. The tools withhold the held fields; the bus doesn't.

  4. 4
    Newsroom system
    story.context

    The editor fixes the headline and, if needed, turns the hold into an editorial gate in the next version.

    202 accepted

    The skill reads the new version and raises nothing new.

The publisher gets

Machine review on every version, with the rule behind each warning. Editors stay the editors.

The vendor proves

Your executor passes the skill harness for som-1.0.0+lib-0.2.2. Your tools honour a hold.

06

Kill a story everywhere

Legal kills the story. Every surface drops it, nothing can bring it back, and a package that never aired is recorded as suppressed.

story.contextlink.*telling.*system.audit
  1. 1
    Newsroom system
    story.context

    Version 8: story_type KILLED.

    202 accepted

    Delivered after version 7 to every consumer, in order.

  2. 2
    Newsroom system
    story.context

    A stale workstation saves the story as ACTIVE again.

    409 refused

    A killed story stays killed. Nobody sees it come back.

    story_type.left_terminal
  3. 3
    Graphics
    link.withdrawn

    The lower third is withdrawn from the bulletin.

    202 accepted

    Playout drops the booking.

  4. 4
    Playout
    telling.ended

    The running telling ends, with its exposure end time.

    202 accepted

    The record shows exactly how long it was on air.

  5. 5
    Automation
    system.audit

    Action SUPPRESSED, target the package: "never linked to air".

    202 accepted

    The trail shows what was stopped, not only what aired.

The publisher gets

One kill reaches every system in order, and no stale update can undo it.

The vendor proves

Your consumers act on KILLED. Graphics withdraws, playout ends, automation records the suppression.

07

Plug a new system into a live newsroom

The house adds a new web CMS in the middle of the season. It has to catch up on live stories without any other system changing a line.

story.contexttelling.*skill.warning.raised
  1. 1
    Web CMS
    Create a consumer connection

    In the portal: the message types it wants, optionally filtered by topic.

    No message

    Its own queue and dead-letter queue. The other systems don't notice.

  2. 2
    Web CMS
    Read over HTTPS

    The pull API, with a client-credentials token. No AWS account needed.

    No message

    Messages in order per story, received and acknowledged up to 10 at a time.

  3. 3
    Web CMS
    Replay from the archive

    In the portal: a time range delivered again into its own queue only, to rebuild the state of stories already running.

    No message

    De-duplicate on message_id and keep the highest version per story. The workspace is emailed when it finishes.

  4. 4
    Web CMS
    A message it can't handle

    Fails five times.

    No message

    Moved to the dead-letter queue so the rest of the story flows; the workspace is emailed. Once fixed, redrive it from the portal.

  5. 5
    Web CMS
    Consumer test run

    Consumer scenarios played into the workspace, graded case by case, then a results statement for the publisher.

    No message

    Expected against actual, for every case.

The publisher gets

Add or swap a vendor without touching the others, and read the results statement it shares with you before it goes live.

The vendor proves

Pass the consumer scenarios and share a results statement with the houses you choose.

What the bus doesn't do

Your systems stay in charge of the story.

It never edits a story

It checks, orders and delivers messages. The first system to publish a story owns it, and your workspace lists which systems may take a story over; a snapshot from any other system is flagged, or refused if you choose. Skills don't edit stories either: a skill raises warnings, and the story's owner decides what to do with them.

It doesn't enforce a hold

A skill's hold is carried to every tool that subscribed. The tools withhold the held fields, not the bus.

It isn't a media store

Messages should point at media in your stores. The bus enforces only the size: anything over 240 KB is refused.

Try one

Run these workflows on the live bus.

Vendors can publish whole stories, run consumer scenarios and the skill harness against the bus today, and share a results statement. Publishers bring their vendors into a house, their own sandbox, grant what each app may publish, and rehearse these workflows there, step by step. RND stand-ins play any part no vendor holds yet, so a new house can rehearse before its first vendor connects.