Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lagom framework - Touraine Tech 2018

176 views

Published on

Touraine Tech 2018.
REX sur le framework Lagom suite à un projet réalisé sur la base de ce framework

Published in: Software
  • Be the first to comment

Lagom framework - Touraine Tech 2018

  1. 1. LAGOM TOURAINE TECH 2018 Fabrice Sznajderman - @fsznajderman Un framework CQRS pour votre projet de lundi prochain, bonne idée ou pas?
  2. 2. AGENDA
  3. 3. ‣Révisions : CQRS & Event sourcing ‣Framework Lagom ‣Live coding ‣Alors? lundi, on fait quoi ? AGENDA
  4. 4. QUI VOUS PARLE ? FABRICE SZNAJDERMAN - DEVELOPPER ‣Lead dev Scala @Lunatech ‣Brown Bag Lunch (Lagom, Scala) ‣Organisateur Scala IO
  5. 5. CQRS
  6. 6. Command Query Responsability Segregation
 CQRS RAPPEL
  7. 7. CQRSCQRS APPROCHE CLASSIQUE
  8. 8. LAGOM FRAMEWORK LE PROBLÈME ‣Ecriture : Opération rapide et atomique ‣Lecture : Données adaptés aux différents besoins métiers
  9. 9. CQRSCQRS APPROCHE CQRS
  10. 10. CQRS MAJ DE LA PARTIE LECTURE (READ)
  11. 11. EVENT SOURCING
  12. 12. EVENT SOURCING BankAccount Id : 3110 amount : 10 BankAccount Id : 3110 amount : 100 BankAccount Id : 3110 amount : 40 BankAccount Id : 3110 amount : 50 Temps UpdateUpdateUpdate
  13. 13. EVENT SOURCING BankAccount Id : 3110 amount : 10 BankAccount Id : 3110 amount : 100 BankAccount Id : 3110 amount : 40 BankAccount Id : 3110 amount : 50 Temps UpdateUpdateUpdate
  14. 14. EVENT SOURCING AccountCreated Id : 3110 amount : 0 DepositePerformed Id : 3110 amount : 30 WithdrawalPerformed Id : 3110 amount : 40 DepositePerformed Id : 3110 amount : 50 Temps Insert Insert Insert
  15. 15. LAGOM FRAMEWORK
  16. 16. LAGOM FRAMEWORK OVERVIEW ‣Editeur Ligthbend ‣Sortie du framework mars 2016 ‣Java et Scala ‣Version actuelle: 1.4
  17. 17. LAGOM FRAMEWORK OBJECTIFS ‣Construire un système de micro-services ‣CQRS & Event sourcing ‣Intégration dans l’environnement de développement
  18. 18. LAGOM FRAMEWORK COMPOSANTS TECHNIQUES ‣Java8 - Scala ‣Maven - SBT ‣Play framework ‣Akka Persistence - Akka Cluster ‣Akka stream ‣Intégration avec Kafka
  19. 19. LAGOM FRAMEWORK PRINCIPALES FONCTIONNALITÉS - API DE SERVICE ‣Description de l’API de service via un trait - interface ‣Request / response synchrone ‣Message asynchrone - streaming
  20. 20. LAGOM FRAMEWORK PRINCIPALES FONCTIONNALITÉS - PERSISTANCE ‣Akka persistence ‣Capturer et persister les events ‣Read processor ‣Clustering / Sharding
  21. 21. LAGOM FRAMEWORK PRINCIPALES FONCTIONNALITÉS - INTEGRATION ENV DE DEV. ‣Intégration dans l’IDE ‣Plusieurs services fournis par défaut ‣Rechargement à chaud du code ‣Une seule commande pour démarrer le système
  22. 22. LAGOM FRAMEWORK PRINCIPALES FONCTIONNALITÉS - PRODUCTION ‣ConductR Kubernetes ‣Déploiement manuel (constructR, ETCD) ‣Docker
  23. 23. LAGOM FRAMEWORK ANATOMIE D’UNE APPLICATION Gateway S1 S3 S2 KAFKA
  24. 24. LAGOM FRAMEWORK ANATOMIE D’UN SERVICE EVENT STORE API SÈCURITE VALIDATION ETC… COMMANDE(S) PERSISTENT ENTITY EVENT(S) MAJ STATE ENTITY READ SIDE EVENT PROCESSOR READ SIDE Event stream CALCUL / AGGREGATION / DENORMALISATION Composant Lagom Read
  25. 25. LIVE CODING
  26. 26. LAGOM FRAMEWORK LIVE CODING - OBJECTIFS ‣Structure d’un projet ‣Les composants d’un service ‣Implémentation CQRS/Event Sourcing dans Lagom
  27. 27. ALORS LUNDI, ON FAIT QUOI ?
  28. 28. BILAN AUJOURD’HUI DANS UN VRAI PROJET ? Mais …
  29. 29. BILAN D’ABORD CE QUI EST COOL ! ‣Intégration à l’environnement de dev ‣“Juste milieu technique” (cc play framework) ‣Offre un cadre standard ‣Facilité de prise en main ‣Une seule commande pour démarrer le système
  30. 30. BILAN ATTENTION, CE QUE L’ON NE VOUS DIT PAS… ‣Idempotence du système ‣Design fonctionnel très important (DDD) ‣Abstraction du protocol ‣Bonne compréhension CQRS / Event Sourcing ‣et des architectures micro services
  31. 31. ALORS, LUNDI ON FAIT QUOI? LAGOM FRAMEWORK - BILAN ‣Lagom est opiniâtre <> silver bullet ‣Productivité +++ ‣Stack technique éprouvée (doc + communauté) ‣Beaucoup de concepts à appréhender et comprendre
  32. 32. MERCI! Questions & Réponses

×