Flawless est un moteur d’exécution pour le calcul résilient, conçu pour exécuter du code jusqu’à son terme même en cas de panne matérielle ou logicielle.
- Ce moteur vise à améliorer l’expérience utilisateur en permettant à des interfaces complexes de conserver des états complexes, ce qui répond au défi consistant à modéliser tous les états dans une base de données.
- Flawless permet de modéliser un état persistant uniquement avec le code et les variables locales, ce qui simplifie l’expression de comportements complexes dans les applications.
- Les workflows de Flawless sont écrits en Rust, puis compilés en WebAssembly et exécutés dans un environnement entièrement déterministe.
- La seule non-déterminisme est introduite lors des interactions avec le « monde réel », par exemple pour effectuer des requêtes HTTP ou générer des nombres aléatoires.
- Flawless assure la persistance à l’aide d’un journal des effets de bord non déterministes, afin qu’un workflow interrompu puisse être relancé et retrouve le même état sans devoir réexécuter ces effets de bord.
- Cette approche minimise la quantité de données nécessaire en cas de défaillance, le reste étant recalculé à la demande.
- L’environnement d’exécution déterministe de Flawless rend le système observable et élimine les bugs impossibles à reproduire.
- Flawless allège la charge liée à la persistance de l’état, permettant aux développeurs de se concentrer sur l’écriture de la logique métier avec l’assurance que chaque action s’exécutera jusqu’à son achèvement.
- Le moteur Flawless peut être redémarré pour maintenance sans perturber l’exécution des workflows.
- Flawless est actuellement en alpha privée et invite les développeurs à rejoindre la liste d’attente pour un accès anticipé.
Aucun commentaire pour le moment.