Aquesta setmana hem estat acabant de quadrar un projecte que afectarà a totes les empreses, especialment aquelles que desenvolupen programari de facturació. Es tracta de Verifactu, una nova normativa que caldrà implementar. Fa uns anys ja vam adaptar el sistema per enviar informació al SII (Subministrament Immediat d’Informació), i ara arriba aquest nou repte.
També hem rebut la visita de persones d’una comercialitzadora d’energia amb base als Països Baixos però activitat a Espanya. Ha estat una trobada de treball molt profitosa, enfocada a com millorar plegats. Sempre és un plaer col·laborar amb empreses que tenen una visió de partnership més enllà del model tradicional "client-proveïdor".
Per acabar, he tancat la setmana canviant de mitjà de transport. Fins ara em movia amb un híbrid endollable, que en el dia a dia em permetia circular només amb el motor elèctric. Però ara faig el pas definitiu: a partir d’ara, 100 % elèctric.
Començo amb algunes recomanacions,
💾 Programari
Hyperfine: Una eina pensada per fer proves de rendiment entre comandes de terminal. Permet comparar el temps d’execució de manera clara i objectiva. Ideal per afinar scripts o triar eines més eficients.
🤔 Curiositats
Un simulador de ciutats. A priori, res d’excepcional. Però en aquest cas tot el joc està programat amb Scratch. Fascinant el que es pot arribar a fer amb aquesta eina.
📦 Recursos
Un recull de serveis i aplicacions que no funcionen amb subscripció, sinó amb pagament únic. Com abans: compres el programari i el fas servir, sense quotes mensuals ni renovacions automàtiques.
🌟 El concepte
Fa dues setmanes vaig parlar d’idempotència (Vermutech #52), i dins del canal de Telegram, en Xevi va comentar el patró event sourcing. Em va semblar una connexió molt encertada, i he volgut aprofundir-hi.
L’event sourcing és un patró arquitectònic on no es desa l’estat actual del sistema, sinó la seqüència d’esdeveniments que han provocat aquest estat. No guardem el "què és", sinó el "què ha passat fins a ser-ho".
Una analogia clara és la comptabilitat: quan es porta la comptabilitat d’una empresa, no s’anota només el saldo actual, sinó cada moviment comptable. A partir d’aquests, es pot reconstruir l’estat actual, generar informes o auditories. Amb event sourcing passa exactament el mateix: cada acció es registra i l’estat es pot obtenir reproduint la seqüència d’esdeveniments.
A nivell tècnic, hi ha una altra comparació molt útil: els WAL (Write-Ahead Logs) de PostgreSQL. Quan es rep una operació, primer s’escriu al log, i només després s’aplica. Això assegura consistència i permet recuperar l’estat en cas de fallida. En un sistema amb event sourcing, els esdeveniments compleixen aquesta mateixa funció.
Aquest patró és especialment útil en entorns on cal tenir una traçabilitat completa dels canvis, en arquitectures distribuïdes o quan l’històric dels esdeveniments és rellevant per al negoci.
Avantatges principals:
Es pot reconstruir qualsevol estat anterior.
Cada canvi és auditable i reversible.
Facilita l’escalabilitat i la replicació.
Desavantatges o punts crítics:
Cal gestionar correctament la versió dels esdeveniments.
El sistema pot requerir optimitzacions per fer lectures eficients (snapshots, projeccions).
És un patró avançat i no sempre necessari.
Si vols llegir una explicació en profunditat i amb exemples, et recomano l’article de Martin Fowler - Event Sourcing
💖 Feedback
Si t’ha agradat i em vols ajudar, fes arribar aquest contingut a qui creguis que li pot interessar, i entra al canal de Telegram per comentar la publicació.