Architettura di sistema¶
Questa sezione descrive la struttura tecnica della piattaforma e come i diversi livelli collaborano tra loro.
Stack principale¶
- Go + Echo per HTTP API e pagine server-rendered
- Ent per ORM, schema e versioning delle entità
- PostgreSQL come datastore principale
- Playwright per E2E real-user testing
- OpenCode / LLM proxy per esecuzione AI
- GoeSign per firme, evidenze e signing flow regolatorio
- Marble per decisioning KYT dove applicabile
Livelli applicativi¶
flowchart TB
UI[UI Web / Pages]
API[HTTP API / Handlers]
SVC[Application Services]
CORE[Domain + Policies + State Machines]
DB[(PostgreSQL / Ent)]
EXT[External Integrations\nGoeSign / Marble / LLM]
UI --> API
API --> SVC
SVC --> CORE
CORE --> DB
SVC --> EXT
UI e View Layer¶
La UI è ampia e server-rendered. Le pagine coprono operatività AML, governance, backbone compliance, sistemi e moduli specialistici.
Handler Layer¶
Gli handler espongono:
- API operative;
- pagine HTML;
- endpoint di health, export, streaming AI, control plane.
Service Layer¶
È il layer più importante della piattaforma. Qui vivono:
- orchestrazione di processo;
- state machine;
- policy engine;
- validation;
- integrazioni esterne;
- ledger di evidenza.
Data Layer¶
Il data model è versionato e soft-deletable. Molte tabelle seguono la convenzione DWH (n_ver, data_fine, cod_azienda).
Componenti sistemici critici¶
Worker leases¶
I worker critici non devono competere tra loro. Il sistema usa lease espliciti per worker come:
event_reactorapproval_executorauto_exec_dispatcherescalationreconciliation
Release gates¶
Il rilascio non dipende da una percezione manuale, ma da gate misurabili:
- worker health;
- poisoned executions;
- retry backlog;
- stale approvals;
- reconciliation clean;
- critical E2E pass;
- evidence chain complete.
Evidence navigation¶
Ogni esecuzione importante deve poter essere navigata come catena completa: trigger → output AI → approvazione → azione → effetto → firma → ledger.
Integrazioni esterne principali¶
| Integrazione | Uso |
|---|---|
| OpenCode / LLM proxy | generazione output AI e pacchetti approvativi |
| GoeSign | signoff, package sealing, evidence-based signature flows |
| Marble | decisioning KYT, sync, reconciliation, governance signoff |
| Storage / archive | conservazione, export, dossier, package generation |