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:

CapesResponsabilitatComportament
L1 (Emmagatzematge)Mutacions de dades en brutSense validació, sense esdeveniments
L2 (Operacions)Lògica empresarialValida 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:

  1. El client envia una sol·licitud de compromís
  2. Escriure el daemon valida i executa operacions (L2/L3)
  3. Els esdeveniments es segellen i es persisteixen al registre de confirmació
  4. El client rep èxit amb el número de seqüència

Llegir Ruta:

  1. Llegir el registre de commits dels daemons
  2. Els esdeveniments es reprodueixen mitjançant els setters L1 (idempotents)
  3. Les projeccions es publiquen mitjançant intercanvi atòmic
  4. Consultes llegides de la projecció actual

Recuperació:

  1. Carregar punt de control (últim estat conegut bo)
  2. Reproduir esdeveniments des de la posició de punt de control
  3. 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é