Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Mikhail Fokanov we discussed an idea for Dynamic Timers solutions. View filenamescheduler.svgheight400

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


Image Added


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.
  • In terms of implementation, there also should be a library (e.g. like a client), that could be included in a microservice to provide it with ability to schedule and execute jobs.



Related jira, that can be addressed with this functionality: 

Jira Legacy
serverSystem JIRA
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyOKAPI-741