Skip to content

json-event-sourcing/pincette-jes-indexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSON Event Sourcing Indexer

This microservice sends messages from Kafka topics to Elasticsearch indices. The topics should use the serialisation of JSON Event Sourcing. If a message contains the field _id then this is also used as the identifier in the index. Otherwise a random UUID is generated.

Configuration

The configuration is managed by the Lightbend Config package. By default it will try to load conf/application.conf. An alternative configuration may be loaded by adding -Dconfig.resource=myconfig.conf, where the file is also supposed to be in the conf directory. The following entries are available.

Entry Description
elastic.authorizationHeader The value for the HTTP Authorization header.
elastic.uri The root URI for uploading indices in Elasticsearch
environment The name of the environment, e.g. "tst", "prd".
indices This is an object where the keys are Kafka topics and the values are Elastic indices.
kafka All Kafka settings come below this entry. So for example, the setting bootstrap.servers would go to the entry kafka.bootstrap.servers.
kafka.num.stream.threads The number of worker threads per instance.
kafka.replication.factor When using Confluent Cloud this should be 3.
logLevel The log level as defined in java.util.logging.Level.
logTopic The Kafka topic where the errors will be logged in the Elastic Common Schema.

Building and Running

You can build the tool with mvn clean package. This will produce a self-contained JAR-file in the target directory with the form pincette-jes-indexer-<version>-jar-with-dependencies.jar. You can launch this JAR with java -jar, without further options.

The total number of threads across all the instances should not exceed the number of partitions for the Kafka topics. Additional threads will be idle.

You can run the JVM with the option -mx128m.

Docker

Docker images can be found at https://hub.docker.com/repository/docker/jsoneventsourcing/pincette-jes-indexer. You should add a configuration layer with a Docker file that looks like this:

FROM registry.hub.docker.com/jsoneventsourcing/pincette-jes-indexer:<version>
COPY conf/tst.conf /conf/application.conf

So wherever your configuration file comes from, it should always end up at /conf/application.conf.

About

Elasticsearch indexer for JSON Event Sourcing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages