Mikhail Fokanov we discussed an idea for Dynamic Timers solutions.
Scheduler microservice
Problem statement:
- Several instances of certain microservice exists, but only one should perform job
- Job should be performed using the schedule (e.g. every hour, Monday 3 AM UTC, etc. )
- The processing should be fault tolerant, e.g. if some microservice is down it should execute the job, when it will be up
Notes:
- Deduplication should be performed in the Kafka topic, not to do the same job several times, if microservice is down for a significant period of time and several message with the same job were sent.
- In the future UI can be implemented to manually schedule jobs and monitor its progress.
- In future for long running jobs, components that are executing the job can send Kafka messages about the progress or errors (if any). It will give comprehensive overview of the process to the user.