docs: ADR message broker — PostgreSQL + webhook n8n, no NATS/Redis Streams
Documenta la decisione architetturale di non deployare un broker dedicato. agent_messages su Postgres copre il flow normale; webhook n8n diretto gestisce il bypass high-priority. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
32
CHANGELOG.md
32
CHANGELOG.md
@@ -4,6 +4,38 @@ Tutte le modifiche significative al progetto ALPHA_PROJECT sono documentate qui.
|
||||
|
||||
---
|
||||
|
||||
## [2026-03-21] ADR — Message Broker: nessun broker dedicato
|
||||
|
||||
### Decisione
|
||||
|
||||
**Non verrà deployato un message broker dedicato** (né NATS JetStream né Redis Streams). Il blackboard pattern viene implementato interamente su PostgreSQL + webhook n8n.
|
||||
|
||||
### Ragionamento
|
||||
|
||||
Al momento della progettazione iniziale, il broker era necessario per disaccoppiare gli agenti dall'Arbiter. Con l'introduzione della tabella `agent_messages` nel database `pompeo`, questo obiettivo è già raggiunto:
|
||||
|
||||
```
|
||||
Agente n8n → INSERT agent_messages (arbiter_decision = NULL)
|
||||
Arbiter → SELECT WHERE arbiter_decision IS NULL (polling a cron)
|
||||
→ UPDATE arbiter_decision = 'notify' | 'defer' | 'discard'
|
||||
```
|
||||
|
||||
Il flusso high-priority (bypass immediato dell'Arbiter) viene gestito con una chiamata diretta al **webhook n8n dell'Arbiter** da parte dell'agente — zero infrastruttura aggiuntiva.
|
||||
|
||||
### Alternative valutate
|
||||
|
||||
| Opzione | Esito | Motivazione |
|
||||
|---|---|---|
|
||||
| `agent_messages` su PostgreSQL | ✅ **Adottata** | Già deployata, persistente, queryabile, audit log gratuito |
|
||||
| Redis Streams | ⏸ Rimandato | Già in cluster, valutabile se volume cresce |
|
||||
| NATS JetStream | ❌ Scartato | Nuovo componente da operare, overkill per il volume attuale (pochi msg/ora) e per il caso d'uso single-household |
|
||||
|
||||
### Impatto su README.md
|
||||
|
||||
La sezione "Message Broker (Blackboard Pattern)" rimane valida concettualmente. Il campo `agent` e il message schema definiti nel README vengono rispettati nella tabella `agent_messages` — cambia solo il mezzo di trasporto (Postgres invece di NATS/Redis).
|
||||
|
||||
---
|
||||
|
||||
## [2026-03-21] PostgreSQL — Database "pompeo" e schema ALPHA_PROJECT
|
||||
|
||||
### Overview
|
||||
|
||||
Reference in New Issue
Block a user