Je roulais des yeux chaque fois que quelqu'un disait "règlement en temps réel." On aurait dit la même vieille soupe habillée de diapos plus jolies. Vous savez de quel type il s'agit : quelque chose qui se règle encore en six heures, peut-être le lendemain si vous n'avez pas de chance, mais bon… près du temps réel, n'est-ce pas ? Bien sûr.
Puis vous vous retrouvez en astreinte pour un système qui est "terminé" mais qui n'est pas vraiment terminé. Une autre histoire.
Vous cliquez sur envoyer. L'interface utilisateur dit terminé. Super. Pendant ce temps, quelque part dans le backend, trois services se disputent l'état comme s'il s'agissait d'un groupe de discussion qui a déraillé. Un livre de comptes mis à jour. Un autre en retard. Un travail de réconciliation qui réessaie discrètement comme s'il espérait que personne ne le remarque. Et quand ça casse ? Félicitations, vous êtes maintenant en train de faire un exercice d'urgence à 3 heures du matin, en parcourant les journaux à travers des services qui ne s'accordent même pas sur les horodatages.
C'est le fantôme dans la machine. Pas de latence. Pas de débit. Finalité.
L'argent se déplace rapidement. La certitude ne le fait pas.
Et ce fossé ? C'est là que tout pourrit. Vous obtenez des soldes fantômes, des états dupliqués, un limbo « en attente » qui dure bien plus longtemps qu'il ne le devrait. Les utilisateurs pensent que c'est fait. Les opérations savent que ce n'est pas le cas. Les ingénieurs font semblant que tout va bien jusqu'à ce que ça explose.
S.I.G.N ne tente pas de corriger cela. Cela tue juste toute l'idée.
Le règlement n'est pas une étape de nettoyage à la fin. C'est la transaction. Si le système dit que c'est fait, il n'y a rien qui se cache derrière le rideau en attendant d'être réconcilié plus tard. Pas de file d'attente fantôme. Pas de « cohérence éventuelle, faites-nous confiance, mec. » C'est final ou ça n'existe pas. C'est tout.
Et ouais, c'est rapide. Mais honnêtement, la vitesse est la partie la moins intéressante.
Ce qui compte, c'est qu'il n'y a plus d'état intermédiaire. Pas de bêtises « techniquement traité mais pas vraiment réglé ». Vous avez soit la finalité, soit vous ne l'avez pas. Cela élimine une classe entière de bugs. Pas une réduction - une élimination.
Vous arrêtez d'écrire du code défensif inutile pour gérer des cas limites qui ne devraient pas exister. Plus de branches « juste au cas où cela échoue plus tard ». Plus de transactions compensatoires scotchées sur des flux de spaghetti. Vous concevez comme si le système signifiait réellement ce qu'il dit.
Une sensation étrange, au fait.
L'auditabilité est là où cela frappe vraiment.
La plupart des systèmes se vantent d'être « entièrement auditables. » Traduction : si vous êtes prêt à souffrir, vous pouvez reconstruire ce qui s'est probablement passé. Fouillez dans les journaux, corrélez les ID de demande, priez pour que rien ne soit perdu. C'est moins un audit, plus une archéologie numérique.
S.I.G.N ne joue pas ce jeu. L'enregistrement est la transaction. Les transitions d'état ne sont pas implicites - elles sont explicites, déterministes et visibles. Vous n'avez pas besoin d'accès interne, de connaissances tribales, ou de cet ingénieur qui « connaît le système ». Vous regardez l'enregistrement, et ça… tient.
Pas de narration requise.
Cela retourne le modèle de confiance sur la tête. Vous ne faites pas confiance aux gens pour réparer les choses plus tard. Vous faites confiance au système pour ne jamais entrer dans un état cassé en premier lieu. Ce qui, oui, semble évident. Ce n'est pas ainsi que la plupart des piles fintech sont construites.
Et l'effet secondaire ? Les opérations deviennent ennuyeuses. Dans le bon sens.
Les équipes de réconciliation diminuent parce qu'il n'y a rien à réconcilier. La gestion des exceptions diminue parce que les exceptions cessent d'être normales. Moins d'alertes tard dans la nuit. Moins de moments « cela ne correspond pas mais nous le corrigerons demain ».
Moins de chaos. Moins de bruit.
Bien sûr, il y a un coût. Vous ne pouvez pas être négligent. Pas de transitions d'état floues. Pas de « nous allons nettoyer cela de manière asynchrone. » Vous avez besoin de garanties strictes, d'invariants clairs et d'une véritable discipline dans la façon dont vous modélisez les transactions. Cela vous force à agir comme des adultes.
Beaucoup de systèmes ne survivront pas à cette contrainte.
Mais l'alternative est ce que nous avons tous toléré - des systèmes qui prétendent être rapides, prétendent être transparents, et comptent discrètement sur les humains pour recoller la réalité lorsque les choses dérivent.
Une fois que vous avez travaillé avec quelque chose où « fait » signifie réellement fait, revenir en arrière ressemble à une réintroduction volontaire de bugs juste pour rester à l'aise.