Loaded
How a match reaches a fan, and what to call each thing on the way

Composer System Map

Three nouns move through this system, and every arrow carries one of them. Events are what EA sends, about 1,700 a match. Moments are the few of those the engine flags as notable. Cards are what a fan reads: mostly the writer's answers to Jim's 29 questions, built from facts and, for one of them, from a moment, plus live cards narrating goals, cards and swings. On the Stadium screen nearly everything is drawn as a rounded tile, play-by-play included, and the backend calls every row it writes a "card." Neither is this noun. In this plan, Card means any unit a fan reads, wherever it is drawn: fifteen content types. Click a noun to light up everywhere it travels. Switch the system version to see what Jeff's week-3 cut-over changes.

Events live_event
Every event in a match as it happens, about 1,700 a game, from EA Sports. A pass, a corner, a goal, a substitution, half time.
Born at EA. Enters through Match Replay, which today replays recorded matches, for the demo and for testing, and is ready to take a live provider instead; everything after it runs the same either way (Travis, 27 Oct). Play-by-play in the Live thread is this feed as Event cards, the thinnest type: a tier from the broker and one line of copy. On staging that line is the broker's own plain copy: the live writer's narration is stored but not delivered to the app (Jeff, 7 Oct).
Moment momentum_event · Swing
A notable swing the engine detects while a match plays: a goal that moves the win probability, a spell of pressure that turns.
Born in the Prediction Engine: an intake step (prediction-ingest) hands each match to one owner, and the live scorer (prediction-scoring) keeps its state and turns its events into moments (Travis, 27 Oct). Reaches the thread only through its card, drawn as a Swing under the event it reads. The raw material a brief is built from.
Card news_report · non_game_day · the 29 questions
Any unit a fan reads, built from events, moments or facts. Fifteen types. Most answer one of Jim's questions; Event and Swing also come as live cards narrating goals, cards and swings, which answer no question.
Born in the writer. Published to D1, read by the wall and the public feed, polled by the broker, shown in Feed and News. Season and Week cards travel as non_game_day. Also built by engine batch jobs and by the broker itself: the three card factories. Beware: the backend calls every row it writes a "card", live events included. That is a database row, not this.
System version
Jeff's plan rewires the engine and the edge in week 3 (5 to 9 Oct). The toggle shows the boxes and arrows that exist before and after. Focus
Overlay
Surface
Squad Central · AWS · the app platform Prediction Engine · AWS League Watcher edge · Cloudflare Stadium · iOS · what the fan holds click a row to trace what reaches it EA Sports events about 1,700 events a match Match Replay replays · live-ready Content Broker files to group chats and clubs stamps the category tracks the match phase App database rows per chat and club Real-time push WebSocket · as it happens Groups API REST · the app asks Live scorer events → moments Editor significance · the brief Fargate writer live narration · stored, not delivered Fargate writer to retire in week 3 · not yet confirmed Batch jobs build cards · on demand Three places make cards. Toggle the overlay to see them. Writer Workers AI · one endpoint D1 published cards The Wall review page · internal A card answers one question. 27 questions: 7 season · 1 week · 19 match, plus the edge's two: what just happened? · how did it go? Since 6 Oct published cards are also a public feed (/v1/cards). Feed tab Happening Now rail · cards from every team you follow News route Community one club's cards · its match card opens Match News route Match Live | News pill · the only Live view in the app both routes Archive the same match from FT+24h · phase complete Season and Week cards: non_game_day, competition followers only Planned: Fantasy · EASMS · Markets Squads Spaces: rich content and challenges today Also on the same feed: the /live web board, match history What the fan sees as live is the Live thread ticking, the torn ticket, the crowd. It is not a category or a route. events events moments · Swings live narrationstored by the broker, not delivered news_report · non_game_day News route · minutes api.squads.games broker polls D1 · 5 min · match reports, cards reads live_event · momentum_event Live route · seconds Event cards and Swings: tiered, plain copy ws.squads.games polls the read API · 10 min brief: facts, angle, request prose back · live narration 1 2 3 events moments cards a brief (a request, not content) dashed: pulled on a schedule. The arrow still points the way the data moves; the label says who asks and how often. Solid: pushed as it happens.
Every arrow is coloured by what it carries. Events come from EA and reach both the broker and the engine. The engine turns events into moments and the Editor decides which deserve a brief. Today the edge polls the engine and writes on its own; from week 3 the Editor sends a brief and the one writer answers. Cards land in D1, where the wall reads them for review and the broker polls them for the app. The Live route pushes events and moments in seconds; the News route serves cards when the app asks. The Card factories overlay marks the three places a card is born.
1Content Broker · events to cards
Makes: a row for every piece that passes through, with deterministic copy where no prose arrived: one per group chat, play-by-play included, and one per club in the match (a home copy and an away copy) for the club feeds, which on staging carry only match reports since 15 Sep. This is routing that also writes.
Voice: none. Plain copy, the fallback the engine falls back to when its writer fails.
Stays. Delivery was settled: the broker pulls, and it works. Not a writer, so the consolidation does not touch it.
2Prediction Engine · batch jobs
Makes: cards on demand from the calculation store, alongside training models and loading data. Deterministic card copy, the second of the three places that copy exists.
Voice: none. Numbers into templates.
Open. Jeff's plan names "deterministic card copy in three places" and defers it to the three-month rolling plan.
3League Watcher edge · the Writer
Makes: the cards a fan reads as written: the 27 questions plus "what just happened?" and "how did it go?", every 10 minutes (Jeff's plan, 18 Sep), on a brief from week 3. Stamped with the voice version that wrote it.
Voice: one, versioned. Change the stamp and every card re-writes.
Becomes the one writer, by Jeff's plan: live narration cuts over to it in week 3 and the Fargate writer is retired. Not yet confirmed as done. Its public feed carried the live writer's sentences as live cards (seen 7 Oct); Jim retired them on 8 Oct: they were September test runs with no numbers, and the same moments exist as Swings. The live writer now adds a stat row; no live run has published since.

Three cards captured from Jim's wall on 1 Oct, with their data faces. The card review now reads Jim's public cards feed instead, where the Espanyol v Elche report pictured here now reads 1-3, not 0-1: Jim's reconcile run on 7 Oct corrected it.

the event later secondsevent row · Swing Live route pushes the rowto the thread, tiered, plain copy not yet measuredcard: what just happened? brief → writer → D1from week 3 (Jeff's plan) 5 minbroker polls D1 new cards writtena copy per club 10 minedge polls the read API Jeff's plan (18 Sep): the edge decidesfor itself · retired week 3 about 40 min after FTmatch report how did X v Y go?one per club, in its voice next openNews route the app asks the Groups APIFeed · Community · Match News FT + 24hcomplete the Stadium becomesan Archive positions are ordered, not to scale
How long each hop takes after something happens on the pitch, where a source gives a time: the Live route in seconds and the two polls from Jeff's platform map, the report's delay from the edge's schedule, complete from the broker's lifecycle. The thread is the only thing measured in seconds. Jeff's plan removes the 10-minute edge poll in week 3, when the Editor briefs the writer directly.
Broker's phases follow the match clock scheduled pre_matchKO − 2h pre_kickoffKO − 30m in_progresskick-off half_time post_matchfull time post_gameFT + 60m completeFT + 24h · Archive in play: the only phase that is "live" The phase on each of Jim's cards · as his feed names it rest · Between rounds pre · Pre-match live · Live ft · Full time am · Morning after arc · The arc ?run-in · ?cut-lines?slate-leverage · ?milestone-watch?streak-watch · ?clinch-watch?promotion-watch ?debut-watch · ?reunion-watch?pick-tier · ?minutes-watch ?moment ?report · ?best-player?player-report ?close-watch ?tendency-character A seventh phase, finalday · Final day, is carried only by ?final-day and ?final-day-seal, on the last day of the PL run-in (24 May). ?key is one of Jim's questions, written as he keys it. Each sits under the phase its cards carry, in the 1,759 cards of the review set: PL and La Liga 11 to 21 Sep, plus the PL run-in, 17 to 24 May.
Two clocks on one axis. The top row is the broker's phases, from its lifecycle code. They follow the match clock; only in_progress and half_time are in play. The bottom row is the six phases Jim's cards carry, with the names his feed gives them. Beneath each is every question whose cards carry that phase across the review set's four rounds. When "between rounds" begins in a week is not on the card; the rounds ran Friday to Sunday or Monday.

Follow one goal

A goal traced end to end with the noun it is at each step. Timings appear only where a source gives one.

  1. the goalEvent. EA records the goal, one of about 1,700 event rows in a match.
  2. + secondsEvent. Match Replay relays it to the Content Broker, which stamps it live_event and pushes it over the Live route. The Live thread shows the goal as a row in the broker's plain copy.
  3. + secondsMoment. If the win probability moves enough for the Live scorer to flag it, it emits a moment. The broker stamps it momentum_event, pushes it over the Live route, and the thread draws it as a Swing. The live writer narrates it too, but on staging that sentence is stored, not delivered (Jeff, 7 Oct).
  4. week 3Brief. The Editor judges the moment significant and assembles a brief: the facts, the angle, the request. (Today the edge instead polls the engine every 10 minutes and decides for itself.)
  5. not measuredCard. The writer answers "what just happened in X v Y?" and publishes the card to D1. The wall shows it with its data face. It does not reach the app yet: nothing from the edge does until the cut-over.
  6. FT + about 40 minCard. The writer answers "how did X v Y go?" and "how did X get on?": the match report, one per club, in that club's voice. Published to D1.
  7. + up to 5 minCard. The broker polls D1, finds the reports, stamps them news_report, writes a copy for each club to the app database.
  8. next openCard. The fan opens the app; the Feed tab asks the Groups API over the News route and the report is there, in Feed, on the club's Community screen, and in the match's News view.
  9. FT + 24hPhase. The match is complete. The Stadium becomes an Archive: the thread frozen, the Swings recovered from the archive, the reports still in News.

The 29 questions a card can answer

Jim's list, 30 Sep. A card is the answer to exactly one of these, tagged with the altitude the question is about, not the day it is asked.

Season 7 questions

clinch-watch
Can we clinch / be doomed this weekend?
cut-lines
What's the survival / qualification line?
final-day
What do we need, right now?
final-day-seal
Is it sealed yet?
promotion-watch
Is this club new to the division, and what happened last time it was here?
run-in
How does the calendar treat us from here?
tendency-character
What kind of team are we?

Week 1 question

slate-leverage
Is anything unusual about the coming slate?

The edge's own 2, tagged Match

live moment
What just happened in X v Y? (about a moment)
match report
How did X v Y go? · How did X get on?

Match 19 questions

absence-watch
Is this side's availability a story?
best-player
Who was our best player?
close-watch
How close did he come?
debut-watch
First appearance for us?
fixture-moments
What's the rarest thing that ever happened between us, or here?
form-watch
Who's in form on our team?
lineup-deviation
Is our lineup at full strength?
milestone-watch
How close is he to a milestone?
minutes-watch
Is he actually playing, and how much?
pick-tier
Is he a top-N pick today, league-wide?

Match, continued  

player-duel
Who has history in this fixture?
player-report
Did my player play well?
price-why
Why is the price what it is?
reunion-watch
Is he facing a former club?
second-opinion
What does the EA view say about this match?
streak-watch
Is he on a streak?
suspension-watch
Anyone one booking from a ban?
tendency-shape
What kind of game will this be?
volatility
How volatile will this get?