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