Skip to content

yohanderose/flipper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flipper .rs

A high-performance scheduling engine built in Rust. Designed for scalability and efficiency, Flipper is ideal for managing complex scheduling tasks in distributed systems.

Features 🚀

We use a replicated leader-follower approach for horizontal scale and guaranteed execution with seamless failover.

Schedule a job using seconds, a Unix timestamp, UTC datetime or cron expression

{
 "schedule_type": "seconds",
 "schedule_value": "5",
 "job_label": "email",
 "job_payload": "{'from': 'demo@flipper.io', 'to': 'jomama@yahoo.com', 'subject': 'Hello', 'body': 'Hello World'}"
},
{
 "schedule_type": "timestamp",
 "schedule_value": "1704108914.872404",
 "job_label": "payment",
 "job_payload": "{'user_id': '123', 'amount': '1000', 'currency': 'USD'}"
},
{
 "schedule_type": "datetime",
 "schedule_value": "2024-01-01T18:35:14.872404+07:00",
 "job_label": "sms",
 "job_payload": "{'from': '1234567890', 'to': '1234567890', 'message': 'Hello World'}"
},
{
 "schedule_type": "cron",
 "schedule_value": "*/10 * * * * *",
 "job_label": "etl",
 "job_payload": "{'table': 'users', 'columns': ['id', 'name', 'email']}"
}
  • Distributed Architecture: Optimized for handling scheduling in a distributed environment.
  • High Performance: Leveraging Rust's performance for handling concurrent tasks efficiently and reliably.
  • Scalable Design: Containerised services easily scale with your scheduling growing demands.
  • Customizable: Designed to be drop-in and flexible.

Flipper .rs

Dependencies 📦

Install & Run 🛠️

docker-compose up

Testing 🔬

pytest

️️ Upcoming Features 🚧

  • Job Type request field (auto created kafka topic) and Payload
  • TTL for taken jobs in database

Contact

📧 Email 👨🏾 Website 🍻 Donate

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published