Minka is a Java library for distribution and balance of backend systems through sharding of user-defined duties.
Horizontally scale up usage of physical resources by splitting processing workload into application instances, and keeping a dynamic distribution and balancing of input signals.
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. |
Check in detail: http://gcristian.github.io/minka
For any doubts, improvements, contribution, write me to gcristian at gmail.
Copyright © 2016 by Cristian Gonzalez
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.