Design ideas topic

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.
  • 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:  OKAPI-741 - Getting issue details... STATUS