Skip to content

Architecture Decisions

Architecture decision map

Эта страница - decision index для ChokaQ. Она объясняет основные выборы runtime и ведет к deep dives, где защищается каждое решение.

Decision map

DecisionWhy it mattersDeep dive
SQL Server как durable backendAccepted work остается restart-safe и inspectable.Почему SQL Server?
Three Pillars schemaActive work отделена от history и recovery evidence.Three Pillars
At-least-once executionЧестный contract для durable work с external side effects.Delivery Guarantees
Atomic Hot/Archive/DLQ movesПредотвращает half-moved jobs.Transaction Integrity
UPDLOCK + READPAST fetchПозволяет многим workers claim work без central locks.SQL Concurrency
Bounded prefetchОставляет SQL backlog, а process memory bounded.Bounded Prefetch
Retry + circuit breakerРазделяет per-job retry и systemic failure protection.Retry And DLQ, Circuit Breakers
DLQ instead of silent dropСохраняет failed work для repair и audit.Failure Taxonomy
Heartbeat + zombie rescueОтличает healthy long work от dead owners.Heartbeat
The Deck как operator surfaceДелает repair workflows explicit и безопаснее ad hoc SQL.Panel Guide

Decision quality bar

Каждое крупное решение должно быть defendable через:

  • problem, который оно решает;
  • operational consequence;
  • trade-off;
  • rejected alternative;
  • failure mode, который все еще остается.

Дополнительные вопросы

Какое design choice самое важное?
Использование SQL как durable coordination boundary. Из этого вырастают fetch, retry, DLQ, observability и operations.

Какую boundary выбирает ChokaQ?
ChokaQ - SQL-backed background job engine с сильной operational visibility. Он не проектируется как streaming platform, broker mesh или distributed log.

Где самая сложная correctness boundary?
Между handler side effects и job finalization. ChokaQ защищает собственное state transactions, но external side effects требуют idempotent handler design.

Лицензия Apache 2.0