Présentation
Qu’est-ce qu’Hermes ?
Hermes est un outil de capture des changements de données (CDC) depuis n’importe quelles sources vers n’importe quelles cibles.
Flux de fonctionnement simplifié
Le serveur Hermes interrogera régulièrement les sources de données et générera un différentiel entre le nouvel ensemble de données et le précédent issu du cache. Chaque différence sera convertie en un message d’événement et envoyée à un bus de messages (e.g. Kafka, RabbitMQ…).
Les clients recevront et traiteront chaque message d’événement pour propager les données vers leurs cibles respectives.
flowchart LR
subgraph Datasources["Sources de données"]
direction LR
RefOracle
RefPostgreSQL
RefLDAP
RefEtc
end
subgraph Hermes-server
direction LR
hermes-server
end
subgraph External_dependencies["Dépendences externes"]
direction LR
MessageBus
end
subgraph Hermes-clients
direction LR
hermes-client-ldap
hermes-client-aspypsrp-ad
hermes-client-webservice
hermes-client-etc["..."]
end
subgraph Targets["Cibles"]
direction LR
LDAP
ActiveDirectory
webservice
etc
end
RefOracle[(Oracle)]-->|Données|hermes-server
RefPostgreSQL[(PostgreSQL)]-->|Données|hermes-server
RefLDAP[(LDAP)]-->|Données|hermes-server
RefEtc[(...)]-->|Données|hermes-server
hermes-server-->|Événements|MessageBus(("Bus de message"))
MessageBus-->|Événements|hermes-client-ldap
MessageBus-->|Événements|hermes-client-aspypsrp-ad
MessageBus-->|Événements|hermes-client-webservice
MessageBus-->|Événements|hermes-client-etc
hermes-client-ldap-->|Met à jour|LDAP[(LDAP)]
hermes-client-aspypsrp-ad-->|Met à jour|ActiveDirectory[(Active Directory)]
hermes-client-webservice-->|Met à jour|webservice[(Web service <i>nom</i>)]
hermes-client-etc-->|Met à jour|etc[("...")]
classDef external fill:#fafafa,stroke-dasharray: 5 5
class Datasources,External_dependencies,Targets external