Gadz.org souhaite privilégier l'Architecture Orientée Service (FR) afin de fluidifier les évolutions des applications ainsi que les évolutions technologiques.
Règles de design
- Les applications communiquent entre elles via RabbitMQ
- Les applications peuvent requeter les référentiels directement via une API HTTP. Dans ce cas, la dépendance au service concernée doit être explicitement signalée
Catalogue des services
Gapps
I/O | Routing key | Action/Déclencheur | Format du JSON |
---|---|---|---|
Requête | request.gapps.account.create | Crée un nouveau compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel | { "event":"request.gapps.account.create", "data":{ "id": [Integer] Numéro sociétaire } } |
Requête | request.gapps.account.update | Met à jour un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel | { "event":"request.gapps.account.update", "data":{ "id": [Integer] Numéro sociétaire } } |
Requête | request.gapps.account.delete | Supprime un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel | { "event":"request.gapps.account.delete", "data":{ "id": [Integer] Numéro sociétaire } } |
Requête | request.gapps.account.suspend | Suspend un compte Google Apps à partir des informations contenues dans le GrAM et l'application Zenimel | { "event":"request.gapps.account.suspend", "data":{ "id": [integer] Numéro sociétaire } } |
Notification | notify.gapps.account.updated | Un compte Google Apps a été modifié par Gappsd | { "event":"notify.gapps.account.updated", "data":{ "id": [Integer] Numéro sociétaire "google_apps_id": [String] Adresse principale du compte google apps "google_apps_statue": [ENUM(non_existent,created,suspended,deleted)] état du compte } } |