ceo-api/src/sagas
valentinbvro 765ec37c3a feat: Saga Manager (Sprint 4-6)
Motor generic pentru procese cu mai multi pasi care nu incap intr-o
tranzactie. Garantia nu e atomicitatea, ci compensarea in ordine inversa.

- saga-registry: definitii versionate in cod, backoff exponential plafonat
- saga-runner: corelator outbox->instanta, step runner, timeout, retry,
  compensare; revendicare cu FOR UPDATE SKIP LOCKED ca doua procese sa nu
  avanseze aceeasi saga simultan
- idempotenta la pornire prin index unic (saga, versiune, trigger_event),
  nu prin SELECT-apoi-INSERT care ar avea race
- compensarea are propriul retry: o compensare esuata lasa sistemul mai rau
  decat esecul original
- monitor /v1/sagas cu instante blocate si retry manual care NU sare pasi
- prima saga reala: imbogatire research brief, fara pas AI (un apel AI
  automat per brief ar schimba profilul de cost)
2026-07-29 15:02:56 +02:00
..
research-brief-enrichment.saga.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
saga-registry.spec.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
saga-registry.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
saga-runner.service.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
sagas.controller.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
sagas.module.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00
sagas.service.ts feat: Saga Manager (Sprint 4-6) 2026-07-29 15:02:56 +02:00