{"id":18910298,"url":"https://github.com/gabrielseibel1/dibas","last_synced_at":"2026-03-08T00:30:21.680Z","repository":{"id":67831814,"uuid":"191018715","full_name":"gabrielseibel1/DIBAS","owner":"gabrielseibel1","description":"Distributed \u0026 Interoperable load-Balancer by Arthur and Seibel","archived":false,"fork":false,"pushed_at":"2019-07-15T01:25:17.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2024-12-31T13:17:18.329Z","etag":null,"topics":["distributed-systems","load-balancer","parallel"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrielseibel1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-09T14:48:59.000Z","updated_at":"2019-07-14T21:16:50.000Z","dependencies_parsed_at":"2023-02-23T18:00:13.847Z","dependency_job_id":null,"html_url":"https://github.com/gabrielseibel1/DIBAS","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielseibel1%2FDIBAS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielseibel1%2FDIBAS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielseibel1%2FDIBAS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrielseibel1%2FDIBAS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrielseibel1","download_url":"https://codeload.github.com/gabrielseibel1/DIBAS/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239899931,"owners_count":19715482,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["distributed-systems","load-balancer","parallel"],"created_at":"2024-11-08T09:41:58.631Z","updated_at":"2026-03-08T00:30:21.579Z","avatar_url":"https://github.com/gabrielseibel1.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DIBAS 🤙👌\n\n**D**istributed \u0026 **I**nteroperable load-**B**alancer by [**A**rthur](https://github.com/arthuradolfo) and \n[**S**eibel](https://github.com/gabrielseibel1)\n\n### Distributed?  🌐\nDIBAS runs its load balancing on every machine of the cluster, unlike usual master-slave architectures (free the \nnodes!).\n\n### Interoperable? 🤝\nDIBAS interoperable (and, in effect, **portable** as well) because it's built with Kotlin, so it can be compiled to \nseveral different runtimes, SOs and architectures in general. Each node has communication interoperability with the \nothers regardless of their characteristics, it's fully agnostic to that (the cluster could be indeterminately \nheterogeneous, being comprised of PCs, phones, R-Pies, anything that Kotlin compiles to).\n \n### Load-Balancer? ⚖\nDIBAS makes nodes continuously communicate with it's cluster-neighbors distributing the tasks they have to carry out. \nIf a node has to many enqueued tasks, and it's neighbors have less work to, it can cheaply (more on that later) send \ntasks to these neighbors, effectively balancing, homogenizing the load of the cluster. Also, with DIBAS, each node \ncan be an entrypoint for jobs/tasks requests, since they automatically distribute the load to the rest of the \ncluster, balancing it in real-time. This avoids bottlenecks in data/tasks ingress on the system, since it can be \ninjected on the cluster in parallel.\n\n### Arthur and Seibel? 👥\nThis projects is authored by \n[Arthur Adolfo](https://github.com/arthuradolfo) and [Gabriel Seibel](https://github.com/gabrielseibel1).\n\n## How to DIBAS? 🤔\nSome info on the project's characteristics and objectives:\n\n- Language:\n    - Kotlin\n\n- Libraries: \n    - [kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines)\n    - [ktor](https://ktor.io)\n\n- Modeling:\n    - DIBAS will run coroutines to execute jobs and communicate between machines (with websockets).\n    - The algorithm for load distribution is similar to a flood-over-graph algorithm.\n    - Each node compares it's load (mainly jobs, but possibly it's HW resources usage) to it's neighbors, forwarding \n    some of it to less-busy neighbors.\n\n- HW for experiments: (on which Docker containers will run)\n    - Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz\n    - 16GB RAM\n\n- Experiments parameters:\n    - Cluster size and graph format (neighbors connections)\n    - Number of jobs to execute\n    - Jobs quantity and entrypoints\n    \n- Results (artifacts):\n    - DIBAS software per-se\n    - DIBAS effect on cluster's job distribution over time (graphs of individual nodes or gif of whole cluster)\n    - Time measurement's of cluster execution of some sets of tasks","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielseibel1%2Fdibas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielseibel1%2Fdibas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielseibel1%2Fdibas/lists"}