Avant-propos
J'ai participé au développement de logiciels pour de grandes entreprises pendant plusieurs décennies, et la gestion des données a toujours été un problème architectural majeur. Au début de ma carrière, il y avait beaucoup d'enthousiasme pour un modèle de données unique à l'échelle de l'entreprise, souvent stocké dans une base de données unique à l'échelle de l'entreprise. Mais nous avons vite appris que le fait d'avoir une pléthore d'applications accédant à un magasin de données partagé était un désastre de couplage ad hoc. Même sans cela, des problèmes plus profonds existaient. Les idées fondamentales d'une entreprise, telles que le "client", nécessitaient des modèles de données différents dans les différentes unités commerciales. Les acquisitions d'entreprises ont encore compliqué les choses.
En réponse, les entreprises les plus sages ont décentralisé leurs données, en confiant le stockage, les modèles et la gestion des données à différentes unités commerciales. Ainsi, les personnes qui comprennent le mieux les données de leur domaine sont responsables de la gestion de ces données. Elles collaborent avec d'autres domaines par le biais d'API bien définies. Comme ces API peuvent contenir des comportements, nous avons plus de flexibilité pour la façon dont ces données sont partagées et, plus important encore, pour la façon dont nous faisons évoluer la gestion des données au fil du temps.
Si cette façon de faire s'est imposée de plus en plus pour les opérations quotidiennes, ...