La Maif met en open source son projet Thoth

L’équipe OSS de la Maif vient d’ouvrir son projet Thoth qui permet d’apporter le sourcing d’événements aux applications Java. Elle livre aussi trois bibliothèques dont jooq-async, une API pour utiliser jooq avec des clients réactifs pour SGBDR.

Les équipes IT de la Maif sont prolifiques ces derniers temps en termes de contribution open source, dans des domaines divers. Après avoir livrée en début d’année la solution Shapash pour que les datascientists partagent des informations explicites sur les données assurant de la transparence dans les modèles d’apprentissage machine, l’équipe OSS vient d’annoncer le projet Thoth. Cette bibliothèque Java fournit l’ensemble des outils pour mettre en oeuvre l’event sourcing dans une application. « Plutôt que de maintenir un état applicatif, l’event sourcing propose de se concentrer sur « ce qui s’est passé » en stockant les événements ayant mené à l’état applicatif plutôt que l’état en lui-même », rappelle Benjamin Cavy, développeur principal à la Maif dans un billet sur Medium en soulignant que cette approche apporte un log d’audit « by-design » pour les applications.

Dans les architectures orientées événements, ces derniers peuvent être publiés tels quels. Avec Thoth, les événements sont stockés en base de données avant d’être publiés dans Kafka. Deux types de projection peuvent être définis, explique encore le billet : en temps réel, mises à jour dans la même transaction que l’événement, et cohérentes à terme (eventually consistent) avec une mise à jour asynchrone via Kafka. Thoth est accessible sur GitHub, de même que des démonstrations. Pour plus de détails, un meet-up est prévu ce 24 mars.

Des requêtes PostgreSQL avec Jooq, VertX et Akka Stream

Parallèlement à Thoth, l’équipe OSS de la Maif ouvre trois autres bibliothèques Java : Jooq-async, Functional-JSON et Functional-validation. Jooq-async permet d’effectuer des requêtes PostgreSQL en utilisant le driver réactif VertX Projects avec l’API jooq – conçue pour bâtir et exécuter des requêtes SQL – et Akka Stream comme mise en oeuvre de reactiveStream, décrit M. Cavy. La bibliothèque Functional-JSON est de son côté inspirée par play-json et basée sur vavr et Jackson. Elle fournit des assistants pour manipuler les noeuds Json Jackson. « Avec cette bibliothèque, vous pouvez avoir un contrôle total sur la sérialisation et désérialisation json. Vous pouvez aussi séparer la définition POJO [plain old Java object] de sa sérialisation, ce qui peut être utile dans une architecture hexagonale », indique le résumé du projet sur GitHub.

Enfin, Functional-validation est présenté comme un outil pour valider les données et agréger les erreurs en utilisant vavr. Au sein de l’équipe OSS de la Maif, ces trois bibliothèques ont été réalisées par Benjamin Cavy avec Alexandre Delègue et Grégory Bévan. L’ensemble des projets open source du groupe mutualiste de Niort est présenté à l’adresse maif.github.io

Source