Commit d14a822a authored by Tobinsk's avatar Tobinsk
Browse files

Merge branch 'readme' into 'master'

Update readme

See merge request !5
parents 17a647dc 2a8ce1c5
# Schema-publisher
To exchange messages between microservices we use [kafka](https://kafka.apache.org/) as a [streaming platform](https://medium.com/swlh/understanding-kafka-a-distributed-streaming-platform-9a0360b99de8). To ensure all the microservices use the same schemas, we use [avro schemas](https://avro.apache.org/docs/1.8.1/spec.html) and the [kafka-schema-registry](https://docs.confluent.io/current/schema-registry/index.html). Under the hood all the microservives uses [kafka-node-avro](https://www.npmjs.com/package/kafka-node-avro) to ensure they serialize messages in the right format.
To exchange messages between microservices we use [kafka](https://kafka.apache.org/) as a [streaming platform](https://medium.com/swlh/understanding-kafka-a-distributed-streaming-platform-9a0360b99de8). To ensure all the microservices use the same schemas, we use [avro schemas](https://avro.apache.org/docs/1.8.1/spec.html) and the [kafka-schema-registry](https://docs.confluent.io/current/schema-registry/index.html). Under the hood all the microservives use [kafka-node-avro](https://www.npmjs.com/package/kafka-node-avro) to ensure they serialize messages in the right format.
The schemapublisher app just publishes all the schemas to the kafka-schema-registry. With this project we have all the schemas versioned in git and can apply them from a single instance.
The schema-publisher app publishes all the schemas to the kafka-schema-registry. With this project we have all the schemas versioned in git and can apply them from a single instance.
In a traditional java environment the kafka message producer often has the control over the schema. Or simple all .asvc files are send to the schema registry with curl. Our node client is not capable to manage the schema so we created this project as a workaround in a containerized environment.
In a traditional java environment the kafka message producer often has the control over the schema. Or simply all .asvc files are sent to the schema registry with curl. Our node client is not capable to manage the schema so we created this project as a workaround in a containerized environment.
## Schema
### geolinker
The geolinker schema controls the message from the [datacollector apps](https://source.dodis.ch/explore/projects?tag=datacollector) to kafka's `geolinker` topic and from [kafka to elasticsearch](https://source.dodis.ch/histhub/es-sink).
### linker
The linker schema controls the message from the [datacollector apps](https://source.dodis.ch/explore/projects?tag=datacollector) to kafka `linker` topic and from [kafka to neo4j](https://source.dodis.ch/histhub/linker).
The linker schema controls the message from the [datacollector apps](https://source.dodis.ch/explore/projects?tag=datacollector) to kafka's `linker` topic and from [kafka to neo4j](https://source.dodis.ch/histhub/linker).
### request-geoconcordance
The request-geoconcordance schema controls the message from the [api](https://source.dodis.ch/histhub/api) to kafka `request-geoconcordance` topic and from kafka to the [resolvers](https://source.dodis.ch/explore/projects?tag=resolver)
The request-geoconcordance schema controls the message from the [api](https://source.dodis.ch/histhub/api) to kafka's `request-geoconcordance` topic and from kafka to the [resolvers](https://source.dodis.ch/explore/projects?tag=resolver)
### response-geoconcordance
The response-geoconcordance schema controls the message from the [resolvers](https://source.dodis.ch/explore/projects?tag=resolver) to kafka `response-geoconcordance` topic and from kafka back to the [api](https://source.dodis.ch/histhub/api) or the [url-resolver](https://source.dodis.ch/histhub/url-resolver)
The response-geoconcordance schema controls the message from the [resolvers](https://source.dodis.ch/explore/projects?tag=resolver) to kafka's `response-geoconcordance` topic and from kafka back to the [api](https://source.dodis.ch/histhub/api) or the [url-resolver](https://source.dodis.ch/histhub/url-resolver)
### response-geoconcordance-url
the response-geoconcordance-url schema controls the message from the [url-resolver](https://source.dodis.ch/histhub/url-resolver) to kafka and back to the [api](https://source.dodis.ch/histhub/api)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment