À propos du projet

Wow est un framework open-source sous licence Apache 2.0, centré sur le concept de « Domain Model as a Service », conçu pour prendre en charge les modèles réactifs CQRS et Event Sourcing dans le développement de microservices. Il structure chaque opération d'écriture comme un flux domaine de bout en bout observable : commande HTTP → décision d'agrégat → événement de domaine → état sourcé → projection ou traitement de saga. Le framework fournit des composants prêts à l'emploi, notamment un pipeline de commandes réactif, la persistance d'événements, des instantanés d'état, des étapes d'attente, des projections de modèle de lecture, des sagas, des métadonnées générées, des routes HTTP WebFlux et un DSL de test de domaine Given → When → Expect. Il convient le mieux aux systèmes où la complexité des règles métier, les exigences d'audit de l'historique des états, les besoins en modèles de lecture multiples ou les flux inter-agrégats justifient la surcharge de l'Event Sourcing ; il n'est pas recommandé pour les cas d'utilisation CRUD simples où une transaction de base de données unique capture entièrement le domaine du problème. Pour l'intégration, le projet fournit un modèle de projet dédié pour aider les développeurs à créer une première tranche fonctionnelle en une configuration ciblée de 30 minutes, avec des étapes incluant le clonage du modèle, l'exécution de vérifications de domaine, le démarrage du serveur avec une configuration en mémoire documentée et la validation de bout en bout du traitement des commandes, de l'Event Sourcing, de la gestion des instantanés et des flux de lecture d'état versionnés. Le dépôt comprend des exemples concrets : un exemple de domaine de commande et de panier en Kotlin, et un exemple de virement bancaire en Java, ainsi que des modules dédiés pour la répartition des commandes de base, la persistance d'événements, les projections, les sagas, les tests de domaine, la génération de routes WebFlux et des intégrations de démarrage Spring Boot pour des capacités optionnelles de stockage, de messagerie, de sécurité et de télémétrie. Il inclut également des outils intégrés de compensation et de récupération pour les flux de traitement d'événements. La version de base actuelle de la branche principale est la 9.1.5, nécessitant Java 17+, construite pour Spring Boot 4.1.1, Kotlin 2.4.20 et KSP 2.3.11. Des étiquettes de version séparées sont maintenues pour les anciennes lignes du framework, comme v6.20.16 qui cible Spring Boot 3.5.11. Le framework est publié sur Maven Central, maintient une documentation bilingue anglais et chinois, et a reçu le prix d'excellence KaiCode'26 pour sa conception modulaire, sa discipline de revue, ses pratiques de test, son analyse statique et la qualité de sa documentation.