End-to-end flows
Each page in this section follows one kind of action from its trigger to a verified ESPN result. Every flow shares the lifecycle below. The flow pages cover what differs: the trigger, the queue, the keys and the checks.
| Flow | Trigger | Queue | Human approval? |
|---|---|---|---|
| Lineup | Tuesday optimizer, UI, rumor actions | lineup_updates | No |
| Waivers and IR | Tuesday waiver evaluator, UI, rumor actions | waiver_actions (plus lineup_updates for IR) | No. IR + add is off unless AUTO_PUBLISH_IR_MOVES is on. |
| Outgoing trades | Wednesday and Friday trade scan | trade_submissions | Yes, per offer |
| Incoming trades | Trade inbox refresh every 2 h | trade_responses, trade_negotiations | Yes, per response |
| Draft day | ESPN draft room picks | draft_targets | Optional: pause, or turn off auto-publish |
What does every action go through?
| Stage | What happens | Where to read more |
|---|---|---|
| Trigger | A CronJob, the UI or another service calls core. Callers send an idempotency key. | Queue publishing |
| Record | Core saves the action, the message and the decision evidence in one transaction. A repeat key returns duplicate with the original tracking_id. | Activity submissions |
| Publish | Lineup, waiver and draft messages go through the outbox, which the activity runner retries if the broker was down. Trade messages are claimed in execution_log first, then published directly. | Queue publishing |
| Execute | KEDA starts a worker Job. The worker claims the tracking_id, so two pods can't run the same action. | How bots run |
| Verify | The worker re-reads ESPN and records the outcome. | How do I know a write worked? |
tip
202 is not an ESPN changequeued or approved means core handed the message to RabbitMQ. Only the worker's outcome, verified_complete or awaiting_processing, says something changed on ESPN.
Which outcome means what?
The worker writes one of these to activity_actions.outcome. A failed execution, such as a PermanentError or a stop for manual verification, shows separately as execution state failed.