Couche services métier
Statut
Document de cadrage architecture — version initiale.
Objectif
La couche services métier porte les règles applicatives de DMV.
Elle doit éviter que les contrôleurs, jobs ou frontends manipulent directement la logique métier complexe. Les services deviennent le point de coordination entre modèles, droits, validations, événements et intégrations.
État actuel visible
Plusieurs modules Laravel possèdent déjà des dossiers Services, notamment :
- acteurs ;
- administration ;
- analytics ;
- AssoSuite ;
- chat ;
- community ;
- identity ;
- mairie ;
- monetization ;
- PlayLoop ;
- publication ;
- settings ;
- territory.
Cette structure confirme une base de séparation métier.
Responsabilités d'un service
Un service métier peut gérer :
- orchestration d'une action ;
- lecture ou écriture contrôlée ;
- vérification métier complémentaire ;
- appel à d'autres modules autorisés ;
- préparation d'un DTO ou résultat ;
- déclenchement de jobs ;
- intégration avec services externes ;
- préparation de contexte pour l'AI Gateway cible.
Ce qui ne doit pas être dans le service
- Rendu UI.
- Code spécifique frontend.
- Secrets exposés.
- Requêtes non contrôlées contournant les droits.
- Décisions critiques non testables.
Relation avec les contrôleurs
Les contrôleurs doivent rester minces :
- recevoir la requête ;
- valider via Request ou règles dédiées ;
- appeler un service ;
- retourner une réponse structurée.
La logique métier doit être dans les services, policies, actions ou objets dédiés.
Services transverses cibles
| Service | Rôle |
|---|---|
| Notifications | Emails, push, alertes, messages système. |
| Media | Upload, transformation, droits, stockage. |
| Analytics | Traçage, agrégation, événements. |
| AI Gateway | Orchestration IA et sécurité. |
| Billing | Abonnements, boosts, crédits. |
| Authorization | Droits inter-applications et contextes. |
Certains éléments existent déjà par modules, mais leur mutualisation complète reste une vision cible.
Risques et points à clarifier
- Dépendances entre modules à documenter.
- Contrats de services à stabiliser.
- Cas où un service transverse doit être extrait d'un module à définir.
- Tests métier à renforcer autour des services critiques.