Skip to content
All diagrams
06Data flow

Post to execution: where the data goes

What happens to a caption and a video between "Schedule" and "Published"?

Five stages, and the split that matters most: text into the database, binaries straight into private storage, and never the other way round.

Drag to pan, scroll to zoom, click an element to trace it.

Open full screen

What to look for

  • The fork at the Store stage — two flows labelled "binaries" and "text and references".
  • The "conditional write" label on the scheduler tick. That single word prevents double publishing.
  • The "expires" and "authorised" labels around the asset release.
Read the full explanation

The decision that shapes this whole path is made at the second stage. A post is two different kinds of thing wearing one name: text, which is small and queryable, and media, which is large and opaque. They are stored separately and travel separately. Captions, schedules and references go into DynamoDB. Images and video go from the browser directly into a private S3 bucket and never pass through a server function at all.

Because of that split, no video is ever base64-encoded into a record, embedded in a job payload, or held in memory by an API route. A post record carries media identifiers; a job carries the same identifiers; a phone gets the bytes from S3. The word "references" appears on nearly every arrow, and that is the rule being applied consistently.

Scheduling writes one entry into a due-time index — a list sorted by when things are supposed to happen. A tick sweeps the entries that are due, claims each one with a conditional write, and turns it into exactly one job. The conditional write is what makes it safe: two ticks running at once cannot both claim the same entry, so a post cannot be published twice.

The media path at the end is pull-based, and that is deliberate. The agent asks for its assets; the Control Plane checks that this agent holds a live lease on this job in this workspace, and only then mints a download link that expires in fifteen minutes and is never written down. A link that leaks is a link that has already stopped working.

Engineers, and anyone asking where their content is actually kept.