Découper par capacités métier
Définir les frontières autour des domaines et responsabilités clairs. Les couches techniques qui servent la même capacité restent souvent dans le même service.
Version française
Cette page résume des lignes directrices pour les microservices et l’architecture event-driven : frontières de services, contrats d’événements, observabilité, déploiement et responsabilité des équipes.
Fondations
Un microservice n’est pas seulement un petit artefact déployable. Il encapsule une capacité métier, la maîtrise de ses données et une responsabilité opérationnelle.
Définir les frontières autour des domaines et responsabilités clairs. Les couches techniques qui servent la même capacité restent souvent dans le même service.
Chaque service possède ses données. Les autres services ne lisent pas directement sa base, mais passent par des APIs, des events ou des read models répliqués.
Limiter les appels synchrones, définir timeouts et fallbacks, et éviter d’exposer les modèles internes comme contrats publics.
Un service doit pouvoir être testé, déployé, dimensionné et restauré indépendamment. Les bibliothèques partagées restent petites et stables.
Architecture event-driven
Les events découplent les flux, mais demandent une discipline forte sur les contrats, l’idempotence, l’ordre et la gestion des erreurs.
Un event décrit ce qui s’est produit : OrderPlaced, PaymentCaptured ou ContractCancelled. Ce n’est pas un appel distant déguisé.
Les schémas sont des interfaces de production. Les changements doivent être compatibles, documentés et couverts par des tests consommateurs.
Les consumers doivent supporter les livraisons multiples. Event ID, Aggregate ID, Inbox/Outbox et stratégie de retry traçable sont essentiels.
L’eventual consistency est un choix de design. Interfaces, SLAs et support doivent rendre les délais et états intermédiaires compréhensibles.
Exploitation
Les systèmes distribués exigent une exploitation rigoureuse. Sans observabilité, ownership et résilience, de petits services créent de grandes dépendances.
Propager métriques, logs, traces et correlation IDs à travers services et events. Les dashboards combinent signaux métier et techniques.
Timeouts, circuit breakers, bulkheads et dead-letter queues évitent les pannes en cascade. Les retries ont limites, backoff et alertes.
Tests automatisés, contract checks, migrations et releases progressives diminuent le risque. Le rollback doit être une procédure ordinaire.
Chaque service a une équipe, un contact, des runbooks, des SLOs et des règles explicites pour les breaking changes.
Pratique
Ces questions rendent les décisions d’architecture concrètes et gardent les risques visibles tôt.