Architecture
Melonade are 3 services and clients (they all scalable)

Process manager
Dispatch task to client
Validate event from client then save to store
Process manager have it's own store that only keep running transaction and current status (Supported Redis and Mongo)
Time keeper
Watch of tasks if timed out, then send event to process manager
Delay the dispatched tasks
Cron job transaction(Not supported yet)
Event logger
Consume store topic and save to permanent store (Only support Elasticsearch in this time)
Client (worker)
Consume task on it's topic, process then update status back to process manager
Last updated