Presentation
What is Hermes
Hermes is a Change Data Capture (CDC) tool from any source(s) to any target(s).
Simplified process flow
Hermes-server will regularly poll data from data source(s) and generate a diff between the fresh dataset and the previous one stored in cache. Each difference will be converted into an Event message, and sent to a message bus (e.g. Kafka, RabbitMQ…).
The clients will receive and process each Event message to propagate data on their respective targets.
flowchart LR
subgraph Datasources
direction LR
RefOracle
RefPostgreSQL
RefLDAP
RefEtc
end
subgraph Hermes-server
direction LR
hermes-server
end
subgraph External_dependencies["External dependencies"]
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
direction LR
LDAP
ActiveDirectory
webservice
etc
end
RefOracle[(Oracle)]-->|Data|hermes-server
RefPostgreSQL[(PostgreSQL)]-->|Data|hermes-server
RefLDAP[(LDAP)]-->|Data|hermes-server
RefEtc[(...)]-->|Data|hermes-server
hermes-server-->|Events|MessageBus((MessageBus))
MessageBus-->|Events|hermes-client-ldap
MessageBus-->|Events|hermes-client-aspypsrp-ad
MessageBus-->|Events|hermes-client-webservice
MessageBus-->|Events|hermes-client-etc
hermes-client-ldap-->|Update|LDAP[(LDAP)]
hermes-client-aspypsrp-ad-->|Update|ActiveDirectory[(Active Directory)]
hermes-client-webservice-->|Update|webservice[(Web service <i>name</i>)]
hermes-client-etc-->|Update|etc[("...")]
classDef external fill:#fafafa,stroke-dasharray: 5 5
class Datasources,External_dependencies,Targets external