Quotidien Shaarli
March 11, 2025
L'article traite de la modélisation des invariants métiers dans le cadre du Domain-Driven Design (DDD) et de l'importance des agrégats (Aggregates). Il aborde la complexité de maintenir ces invariants, notamment lorsque les règles métiers deviennent plus complexes. L'exemple donné est celui d'une application e-commerce où la quantité de produits par commande est limitée. L'article explore deux approches pour gérer ces invariants : une approche simple où l'invariant est vérifié au niveau de l'objet LineItem
, et une approche plus complexe nécessitant la dénormalisation des données pour garantir la cohérence éventuelle (Eventual Consistency). Cette dernière méthode implique de dupliquer certaines informations pour éviter des transactions lourdes et potentiellement bloquantes. L'article souligne également l'importance de la discussion avec les experts métiers pour définir les règles de gestion des invariants et introduit le concept de Job Queue pour assurer la mise à jour asynchrone et robuste des données. En conclusion, la complexité de la solution dépend de la volumétrie des données et des exigences métiers.
L'architecture hexagonale, également connue sous les noms de Ports et Adapters, Onion Architecture, ou Clean Architecture, est un modèle architectural qui vise à protéger le code métier des dépendances externes. Elle utilise des adapteurs pour encapsuler les dépendances externes, permettant ainsi une indépendance totale du code métier. Les avantages incluent la facilité de développement et de test, la protection contre le vendor lock-in, et la possibilité de changer les implémentations externes tardivement. Cependant, cette architecture peut entraîner une phase de conception plus longue et des pertes d'opportunités d'optimisation. Elle est particulièrement adaptée aux modules de taille moyenne ou plus grands, aux projets longs, et aux environnements multiplateformes. Elle est moins adaptée aux petits modules ou aux projets nécessitant un démarrage rapide.
Tout est dans le titre
L'article aborde l'importance de connaître le temps de redémarrage des machines et de s'assurer que les équipements et services reprennent correctement après un reboot. Il soulève des questions sur la fréquence des redémarrages et leur impact sur la disponibilité des services. L'article met en avant la nécessité de tester régulièrement les procédures de redémarrage pour garantir la résilience des systèmes et minimiser les interruptions.