• Home
  • About
    • Ahmed DAMMAK photo

      Ahmed DAMMAK

      Full Stack Developer

    • Learn More
    • Twitter
    • LinkedIn
    • Github
  • All Posts
  • All Tags
  • Projects

DevoxxFR 2019 - Hexagonal @ scale

18 Apr 2019

Reading time ~2 minutes

Talk de Cyrille Martraire @cyriux, CTO d’Arolla.

Abstract

Les Microservices ont absolument besoin de DDD. La notion de Bounded Contexts, un ingrédient-clé de DDD, est l’outil de choix pour définir des contours de services qui ne vont pas mener au désastre au runtime et ou au moment de déployer. Ce talk vous donnera une meilleure compréhension de ce concept et de son intérêt dans le contexte d’une architecture de plus en plus distribuée. Surtout, vous découvrirez comment vraiment découper votre monolithe avec de nombreux conseils. Nous évoquerons aussi quand appliquer, ou non, le style Hexagonal, parce qu’il ne faut pas abuser des bonnes choses. Et tout cela avec du fun et quelques surprises !

Notes

Random boundaries ==> micro services

  • Probleme de dépendances
  • Probleme de down / up
  • Bq de meeting ==> Probleme de définition de bouderies

Micro services ends DDD Community Paris Software crafters

Comment définir les frontières ?

  • Split by layers
    • Facile
    • Mauvaise idée
  • Split par technology
    • Facile
    • Peu marcher
  • Domaine entity
    • C’est le drame …

La réponse c’est domain Driven Design ==> La solution depuis 2011 qui ne vieillit pas

DDD

  • il faut couper par zone fonctionnelle homogène
  • Ce n’est pas facile
  • Des contours qui on t un sens métier
  • Il faut apprendre le métier
  • Bounded Context
  • Un package qui contient tout ce qui partie d’un domaine métier

Comment on sait si les bouderies sont bonnes ?

  • on ne peut pas avant de tester
  • Voir l’historique des commits
  • On introduit des sous domaines pour limiter les if …
  • Le langage est une source d’information

Duplication = couplage : Le Dont Repeat Yourself ne marche pas à tous les couts Si on centralise, on maximise le couplage

Ou placer le curseur

  • Dry + coupling   Isloation + Redundancy
    • Si on est sur un meme module maven
    • Si on est à grande échelle

Coupling ==> perte de cohésion

Chercher le contexte métier :

  • le clustering des mots suggère du découpage
  • Un bon domaine finit généralement en « tion » ou « ing »

On découpe le modèle métiers en patates, sous patate … chaque patate représente un bounded context

Event storming

  • Zone de pression technique qui conditionne le domaine
  • On peut avoir différent type de base par module

Pour se rassurer : on compare avec qq chose qu’on connait bien

Si on a des projets qui ne sont pas rattachés aux meme management, alors, il ne faut pas les mutualistes

Attendre jusqu’jusqu’à ce que les module soient un peu plus stable

Dans chaque, contour, on peut faire des trucs différents

Archi hexagonal

Dana brendemeyer : Global architecture

Hexagonal @ scale

  • Intérieur : domain
  • Extérieur : audience

On peut penser comme un SAAS dans l’entretprise.



DevoxxFRconferencesDDDHexagonal