Date de lancementseptembre 2016
État du Service
ConcepteursDorian Becker, Alexandre Narbonne
Sourceshttps://github.com/gadzorg/gorg_mail
Clés de routage écoutées
notify.googleapps.user.created
Clés de routage émises
request.googleapps.user.create

Présentation du service

Ceci service assure l'interaction entre l'application GorgMail et l'Architecture Orientée Service (SOA)

Il permet notamment à GorgMail d'être informer du succès de la création d'un compte GoogleApps

Il est intégré à l'application GorgMail

Infos pour les Ops

Environnements

Développement

VHOST rabbitmq individuel pour chaque dev

Recette

HébergementVOIR GorgMail
ResourcesUser rabbitmq : rec-gorgmail

Production

HébergementVOIR  GorgMail 
Resources

User rabbitmq : prod-gorgmail

Dépendances extérieures

Aucune spécifiques au service rabbitMQ, de manière générale voir GorgMail

Déploiement

Configuration

voir GorgMail

L'application fonctionne soit avec des varaibles d'environnement, soit avec un fichier de configuration.

Le fichier de configuration est situé dans config/rabbitmq.yml

default: &default
  sender: gramapi
  host: localhost
  port: 5672
  vhost: /
  queue_name: logs
  deferred_time: 5000
  max_attempts: 10
  exchange_name: "agoram_event_exchange"
  user: guest
  password: 
  logging_key: "log"

development:
  <<: *default

test:
  <<: *default
  deferred_time: 10
  max_attempts: 2

production:
  <<: *default

 

Tout ces attributs peuvent être indiquer en variable d'environnement en les mettant en majuscules et en prefixant le nom avec RABBITMQ_

Les variables d'environnement sont prioritaires sur le fichier de configuration

Exemple : RABBITMQ_HOST

Arret / Démarage

Sur Heroku :

Il suffit d'activer ou désactiver le dyno service_rabbitmq

En local :

Lancer la commande bundle exec rake gorg_service:run pour démarrer le service

Ctrl+C pour le couper ou envoyer SIGINT (kill -2)

Installation

Guide d'installation du service

Infos pour les Dev'

Notifications générées

Clé de routageQuand ?Contenu du messageExemple de contenu
notify.monservice.ressource.statusQu'est ce que cette notification signifie ? Quel est le nouvel tat ?Quels sont les informations contenues dans ce message ?

 

 

N'oubliez pas de mettre à jour la propriétés "Clés de routage émises" de la page avec les nouvelles routing keys

Si vous modifiez le format d'une notification existante, essayez au maximum de conserver les données précédentes et pensez à reporter les changements sur les services clients de cette notification

 

Requêtes faites à d'autres services

Clé de routageCommentaires
request.googleapps.user.createun commentaire qui pourrait aider les autres dev a comprendre pourquoi cet appel a un autre service est fait

N'oubliez pas de mettre à jour la propriétés "Clés de routage émise" de la page avec les nouvelles routing keys

Requetes écoutées

Clé de routageActions effectuéesContenu du messageExemple de contenu
request.monservice.ressource.actionExpliquez ce que le service va faire quand on appel cette actionQuels sont les informations que le message doit contenir ? Lesquels sont obligatoire / facultatives ? Vous pouvez mettre un SCHEMA-JSON

 

N'oubliez pas de mettre à jour la propriétés "Clés de routage écoutées" de la page avec les nouvelles routing keys

Si vous modifiez le format d'une requete existante, pensez à reporter les changements sur les services clients de cette requete

Notifications écoutées

Clé de routageActions effectuées
notify.googleapps.user.createdActive la redirection vers ce compte google apps

N'oubliez pas de mettre à jour la propriétés "Clés de routage écoutées" de la page avec les nouvelles routing keys