BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Vaughn Vernon et la conception Réactive pilotée par le domaine

Vaughn Vernon et la conception Réactive pilotée par le domaine

Favoris

Utiliser le Modèle Acteur avec le Domain Driven Design, DDD, peut permettre de palier les problèmes d’architecture, typiquement trouvés dans des architectures évènementielles ou hexagonales. Vaughn Vernon, auteur de Implementing Domain-Driven Design, l’a expliqué dans une récente présentation sur le « DDD réactif » avec Scala et Akka (implémenté grâce au Modèle Acteur). Le nouveau terme « Réactif » qui n’est apparu que tout récemment n’est pas véritablement un nouveau concept. En effet, en tant que développeur, nous avons l’habitude des évènements et des messages mais ce terme apporte de nouveaux changements pour Vaughn. Il a poursuivi sa présentation en définissant quelques caractéristiques essentielles du Modèle Acteur :

  • Message Asynchrone Direct, un acteur envoie un message de manière asynchrone et directement.
  • Lock Free Concurrency. Les verrous ne sont pas gérés par les acteurs, seulement par l’infrastructure ;
  • Ne rien partager. Les acteurs ne savent pas l’état des autres acteurs.

Une des premières motivations de Vaughn pour utiliser le DDD est qu’il souhaite modéliser le cœur du métier de manière explicite. Mais une architecture type orientée événement, où l’on a été explicite à propos du modèle et des évènements du domaine, n’est jamais très claire. En effet, lorsqu’un évènement est publié, il peut être difficile de trouver le code qui réagira à sa publication, et d’autant plus son impact sur le modèle. Par contraste, Vaughn pense que le Modèle Acteur est très explicite ; lorsqu’un acteur envoie un message à un autre, c’est écrit clairement dans le code.

Une des questions posées par Vaughn est de savoir comment profiter de la combinaison du Modèle Acteur et du DDD ? S'agit-il seulement de messages envoyés entre différents agrégats avec la même architecture qu’avant ? La réponse est non et il pense que l’on peut se débarrasser de concepts d’architecture inutiles que l’on trouve dans les architectures évènementielles et hexagonales. Avec un bon framework il est persuadé que l’on peut simplement réduire l’architecture à des contrôleurs et des agrégats. Les contrôleurs sont alors les acteurs sachant où envoyer les messages pour interagir avec les agrégats du modèle. Il ne pense pas qu’il y ait de réelle limitation à l’utilisation du modèle acteur et du DDD. Il pense que cette combinaison peut-être utilisée dès que l’on a des besoins de haute scalabilité, de haute disponibilité, et de rapidité.

Akka est construit pour la JVM, mais Vaughn travaille actuellement sur une implémentation appelée Akka.NET qui est un effort pour porter Akka au C# et F#.

Un peu plus tôt cette année, Vaughn a mentionné une fondation pour promouvoir le DDD combiné au modèle acteur. Le Reactive Manifesto a été publié en septembre 2013 et décrit les idées principales derrière le concept de DDD Réactif.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT