Giter Club home page Giter Club logo

metronome's Introduction

 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

metronome's People

Contributors

d33d33 avatar miton18 avatar pierrez avatar swallez avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

metronome's Issues

Append more logs

Hi!

This will be awesome to have more logs on each components. Metronome is quite opaque.

Manage prometheus metrics differently

Hi!

Actually, prometheus metrics are instantiate and hosted in a structure. This way to do it is not the best way I thinks. For example, if I instantiate two Job Consumer the application will crash because of a prometheus panic. This panic is called when we do the must register in the constructor.

Documentation

Is the documentation of metronome hosted somewhere? I am validating it against other options to use it for making a microservice to schedule distributed tasks. With the documentation it would be easy for me to access its capabilities.

Switch to echo

Hi!

A change that may be interesting it is to move from negroni to echo. This feature also include metrics server.

This have as benefit to provide more middlewares to handle basics tasks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.