/metronome

Metronome is a distributed and fault-tolerant event scheduler

Primary LanguageGoOtherNOASSERTION

 Metronome - Distributed, fault tolerant scheduler

version Build Status codecov Go Report Card GoDoc Join the chat at https://gitter.im/ovh-metronome/Lobby

Metronome is a distributed and fault-tolerant event scheduler. It can be used to trigger remote systems throught events (HTTP, AMQP, KAFKA).

Metronome is written in Go and leverage the power of kafka streams to provide fault tolerance, reliability and scalability.

Metronome take a new approach to the job scheduling problem, as it only handle job scheduling not effective execution. Effective job execution is perform by triggered external system.

Metronome has a number of advantages over regular cron:

  • Jobs can be written in any language, using any technology as it only trigger event.
  • Jobs are schedule using ISO8601 repeating interval notation, which enables more flexibility.
  • It is able to handle high volumes of scheduled jobs in a completely fault way.
  • Easy admin, thanks to a great UI.

Status

Currently Metronome is under heavy development.

Quick start

The best way to test and develop Metronome is using docker, you will need Docker Toolbox installed before proceding.

  • Clone the repository.

  • Run the included Docker Compose config:

docker-compose up -d

This will start, PostgreSQL, Redis, Kafka and Metronome instances.

Open your browser and navigate to localhost:8081

Contributing

Instructions on how to contribute to Metronome are available on the Contributing page.

Get in touch