Model d’execució
El model d’execució defineix com Asset Core processa els canvis d’estat i serveix consultes amb garanties deterministes i auditable.
Problema que resol aquest concepte
Els sistemes distribuïts s’enfronten a una tensió fonamental entre consistència, disponibilitat i tolerància a particions. Els enfocaments tradicionals sovint sacrifiquen un per aconseguir els altres, cosa que condueix a:
- Condicions de competència quan múltiples escriptors actualitzen el mateix estat
- Actualitzacions perdudes quan els canvis concurrents s’esborren mútuament
- Comportament no determinista que dificulta la depuració i l’auditoria
- Protocols de consens costosos que afegeixen latència i complexitat
Asset Core resol aquests problemes adoptant una arquitectura de escriptor únic amb esdeveniments, intercanviant l’escalabilitat d’escriptura horitzontal per un determinisme absolut i simplicitat.
Idees principals
Món de Sol·licitant Únic
Cada món té exactament un escriptor. Això elimina:
- Sobrecost de coordinació entre escriptors
- Condicions de competència en les mutacions d’estat
- La necessitat de bloquejos distribuïts o consens
El daemon d’escriptura serialitza tots els commits a través d’un únic canal. Si bé això limita el rendiment d’escriptura a allò que un node pot gestionar, garanteix que cada commit veu una vista consistent del món.
Registre de Compromisos com a Font de Veritat
Tots els canvis d’estat es registren com a esdeveniments en un registre de compromisos d’append-only:
- Els esdeveniments són segellats en lots abans de l’acusament
- Els lots són persistents de manera duradora abans que els clients rebin respostes d’èxit
- El registre és el document autoritzat de tot el que ha passat
Aquest disseny permet la reproducció determinista: donada la mateixa seqüència d’esdeveniments, qualsevol lector reconstruirà el mateix estat.
Projeccions
Les projeccions són vistes optimitzades per a la lectura de l’estat derivades del registre de confirmacions:
- El daemon segueix el registre de compromisos per a nous lots
- Els esdeveniments són aplicats mitjançant la reproducció per actualitzar l’estat en memòria
- Les instantànies són publicades atòmicament per al servei de consultes
Les projeccions són eventualment coherents amb el registre de compromisos. La diferència entre els esdeveniments compromesos i les projeccions publicades és el retard de frescor.
Arquitectura de Tres Capes
El temps d’execució separa les preocupacions en tres capes:
| Capes | Responsabilitat | Comportament |
|---|---|---|
| L1 (Emmagatzematge) | Mutacions de dades en brut | Sense validació, sense esdeveniments |
| L2 (Operacions) | Lògica empresarial | Valida les precondicions, emet esdeveniments |
| L3 (Transaccions) | Coordinació | Registra desfer, gestiona la reproducció |
Aquesta separació assegura que:
- Les operacions d’emmagatzematge són ràpides i predecibles
- Les regles de negoci s’apliquen de manera coherent
- Les transaccions es poden revertir de manera atòmica
Com s’integra al sistema
El model d’execució modela cada aspecte d’Asset Core:
Escriure Ruta:
- El client envia una sol·licitud de compromís
- Escriure el daemon valida i executa operacions (L2/L3)
- Els esdeveniments es segellen i es persisteixen al registre de confirmació
- El client rep èxit amb el número de seqüència
Llegir Ruta:
- Llegir el registre de commits dels daemons
- Els esdeveniments es reprodueixen mitjançant els setters L1 (idempotents)
- Les projeccions es publiquen mitjançant intercanvi atòmic
- Consultes llegides de la projecció actual
Recuperació:
- Carregar punt de control (últim estat conegut bo)
- Reproduir esdeveniments des de la posició de punt de control
- Reprendre l’operació normal
Invariants i garanties clau
Determinisme
Donada la mateixa seqüència d’esdeveniments, la reproducció produeix un estat idèntic. Això requereix:
- Les operacions emeten estat posterior en esdeveniments (no deltes)
- Replay utilitza L1 setters (sense aritmètica, sense validació)
- No hi ha dependències externes durant la reproducció
Idempotència
Aplicar el mateix esdeveniment dues vegades no té cap efecte addicional:
- Els esdeveniments porten l’estat final a configurar
- La reproducció simplement sobreescriu amb aquest estat
- Segur per tornar a provar després de fallades
Atomicitat
Totes les operacions en un commit tenen èxit o fracassen juntes:
- L3 registra passos d’undo durant l’execució
- Les fallades desencadenen rollback de tots els canvis
- No es poden veure compromisos parcials
Seguretat en cas d’accident
El sistema es recupera correctament de les caigudes:
- El registre de compromisos sobreviu als reinicis
- Els punts de control registren el progrés
- Replay reconstrueix qualsevol estat que falti
Veure també
- Frescura i Repetició - Com de “fresca” és la dada llegida
- Transaccions i Operacions - La unitat atòmica de canvi
- Escriure Arquitectura de Camí - Anàlisi profunda del pipeline