Scheduler setup guide
The service is available as a docker image.
It has the following dependencies:
  • a mongodb database
  • needs to be able to connect to the Kafka instance used by the engine
The service comes with most of the needed configuration properties filled in, but there are a few that need to be set up using some custom environment variables.

Dependencies

Mongo database

Basic Mongo configuration - helm values.yaml
1
scheduler-mdb:
2
existingSecret: {{secretName}}
3
mongodbDatabase: {{SchedulerDatabaseName}}
4
mongodbUsername: {{SchedulerDatabaseUser}}
5
persistence:
6
enabled: true
7
mountPath: /bitnami/mongodb
8
size: 4Gi
9
replicaSet:
10
enabled: true
11
name: rs0
12
pdb:
13
enabled: true
14
minAvailable:
15
arbiter: 1
16
secondary: 1
17
replicas:
18
arbiter: 1
19
secondary: 1
20
useHostnames: true
21
serviceAccount:
22
create: false
23
usePassword: true
Copied!
This service needs to connect to a Mongo database that has replicas, in order to work correctly.

Configuration

MongoDB configuration

The MongoDB database is used to persist the scheduled messages until they are sent back. The following configurations need to be set using environment variables:
SPRING_DATA_MONGODB_URI - the uri for the mongodb database

Kafka configuration

The following Kafka related configurations can be set by using environment variables:
SPRING_KAFKA_BOOTSTRAP_SERVERS - address of the Kafka server
SPRING_KAFKA_CONSUMER_GROUP_ID - group of consumers
KAFKA_CONSUMER_THREADS - the number of Kafka consumer threads
KAFKA_AUTH_EXCEPTION_RETRY_INTERVAL - the interval between retries after AuthorizationException is thrown by KafkaConsumer
Each action available in the service corresponds to a Kafka event. A separate Kafka topic must be configured for each use-case.
Make sure the topics configured for this service don't follow the engine pattern.

Logging

The following environment variables could be set in order to control log levels:
LOGGING_LEVEL_ROOT - root spring boot microservice logs
LOGGING_LEVEL_APP - app level logs