aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

refactor(orchestration): pure decision-function orchestrator with CAS

Ouverte
#477 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement orchestration
Langage dominant
TypeScript
Étoiles
143
Forks
46
Merge moyen
3 j 10 h
PR mergées (30 j)
24

Description

**Context:** ROADMAP.md → Pure decision function orchestrator refactor
**Related:** autonomous-feedback-loop draft

---

## Component

API or orchestration

## Describe the feature

Extract orchestrator decision logic into **pure functions**: `(frozen_snapshot) → typed_action`. Side-effect execution applies actions with **CAS guards** on DynamoDB `updated_at` to prevent stale writes. Prerequisite for autonomous feedback loop.

## Use case

Orchestrator logic is hard to unit test with I/O mocks. Competing durable workers risk race conditions. Complex state machines (PR watcher) need a testable core.

## Proposed solution

1. Define `OrchestratorSnapshot` and `OrchestratorAction` types.
2. Pure `decide(snapshot): Action` with exhaustive unit tests (no AWS mocks).
3. Executor applies action with `updated_at` conditional writes.
4. Incremental refactor from current durable handlers—no big-bang.
5. Document in `docs/design/ORCHESTRATOR.md`.

## Other information

- Explicit prerequisite for **autonomous feedback loop** draft.
- Design context: `docs/design/ORCHESTRATOR.md`.

- [x] This might be a breaking change

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par ROADMAP.md et docs/design/ORCHESTRATOR.md, puis suivez les handlers actuels d’orchestration durable mentionnés dans l’issue. Définissez les limites du snapshot et de l’action, couvrez decide(snapshot) avec des tests unitaires exhaustifs et vérifiez que l’exécution utilise des écritures conditionnelles avec updated_at tout en préservant la compatibilité incrémentale.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, typescript
Domaine
backend-api-design, cloud, distributed-systems
Type d'issue
Refactorisation
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.