Tests de simulation déterministe en Rust : une approche par machine à états
L'équipe Polar Signals partage son expérience dans la construction d'une nouvelle base de données Rust avec une architecture de machine à états qui place les tests de simulation déterministe (DST) au premier plan. Contrairement à leur précédente base de données Go, FrostDB, la nouvelle base de données évite de contrôler le planificateur existant et utilise plutôt un modèle de machine à états où tous les composants principaux sont écrits comme des machines à états monothreadées communiquant via un bus de messages. Cette approche offre un contrôle complet sur la concurrence, le temps, l'aléatoire et l'injection de pannes, simplifiant grandement la mise en œuvre des DST et permettant de découvrir deux bogues critiques. Bien que cette approche exige une surcharge cognitive supplémentaire, elle permet un raisonnement plus précis sur le comportement du système et un code plus fiable.