Skip to main content

Message contracts

Use the queue contract explorer for the six queues published by core: schemas, required fields and placeholder examples. The maintained source is core's AsyncAPI spec; this page describes consumers, queue ownership and worker-only messages.

Injury alerts are not claims

waiver_actions also carries INJURY_STATUS_CHANGE alerts from player sync. Those use Sleeper player IDs and have no tracking or trace context. API claims use ESPN player IDs.

Which queues exist?​

QueuePublisherConsumerDeclared byKEDA trigger
lineup_updatesCore /v1/trigger/lineupLineupBrokerYes
waiver_actionsCore /v1/trigger/waiver, player syncWaiver sniperBrokerYes
draft_targetsCore /v1/trigger/draft-pickDraft clickerBrokerYes
trade_evaluationsNone scheduledTrade evaluationWorkerYes
trade_negotiationsCore trade inbox serviceTrade negotiationWorkerYes
trade_proposalsNoneTrade proposalWorkerNo
trade_submissionsCore trade offer serviceTrade builderWorkerYes
trade_responsesCore trade inbox serviceTrade responseWorkerYes
llm_requestsThe worker (requestLlmAsync)Async LLMWorkerYes

"Broker" queues are declared by the broker's definitions and policy. The worker only checks that they exist. "Worker" queues are declared durable by whoever connects first.

How are deliveries handled?​

Worker processing and result reporting are described in How bots run. Core trigger messages arrive through a durable outbox; trade publications use durable claims and require reconciliation when delivery is uncertain. See Core delivery, idempotency and retries.

trade_evaluations​

FieldTypeRequiredNotes
incoming_player_idsstring[]YesNon-empty. Core's internal ids.
outgoing_player_idsstring[]YesNon-empty. No id on both sides.
season, weekintegerYes
tracking_idstringNo

trade_proposals​

FieldTypeRequiredNotes
seasonintegerYes2000 or later.
weekintegerYes1 to 18.
exclude_team_idsstring[]NoESPN team ids.
tracking_idstringNo
warning

Nothing publishes here and no trigger wakes a worker for it. Use the trade scan CronJob.

llm_requests​

FieldTypeRequiredNotes
request_idstringYesUUID matching the llm_async_requests row.
promptstringYes
optsobjectNoPassed to completeWithFallback, for example systemPrompt and callSite.

Not queues​

Two bots take no queue message.

JobInput
Trade inboxCLI flags.
Rumor digestDatabase rows.

Draft sync and the draft clicker also talk over Redis. See Draft sync for those keys.