Home Integration Demo Details Architecture Project

Minka is a Java library for distribution and balance of backend systems through sharding of user-defined duties.

What’s for ?

Used to horizontally scale up usage of physical resources by splitting processing workload into application instances, and keeping a dynamic distribution and balancing of input data.

Usage and backend model

Duties Pallets Delegates Shards Leader Followers
user-defined distributable entities, representing input data or signal to user functions. group duties, with specific balancing strategies based on lifecycle, costs and performance. the API client applying the contract of reacting on distribution events sent to the shard fragments of the duty universe, each machine in the cluster. coordinates client CRUD requests. Controls everything. receives duties and pallets from the leader, to invoke delegate’s contract.

Features

Implementation flow

Thru the inversion of control pattern, the host application yields the creation, update, deletion, shard selection, and transportation of duties to Minka. The following implementation flow takes place:

request reception transport available
client builds a duty and the CRUD request thru API minka routes request to the current leader leader ensures consistency and distributes duty to the shard follower process invokes delegate’s contract onCapture or onRelease