{"id":13552731,"url":"https://github.com/bancolombia/async-dataflow","last_synced_at":"2026-02-23T23:19:46.132Z","repository":{"id":38344861,"uuid":"300698298","full_name":"bancolombia/async-dataflow","owner":"bancolombia","description":" Component  to deliver asynchronous responses in real time to client applications","archived":false,"fork":false,"pushed_at":"2025-03-26T23:00:56.000Z","size":2428,"stargazers_count":16,"open_issues_count":11,"forks_count":7,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-26T23:30:05.447Z","etag":null,"topics":["asynchronous-responses","elixir","hacktoberfest","open-source","realtime","websockets"],"latest_commit_sha":null,"homepage":"","language":"Elixir","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/bancolombia.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-10-02T18:07:42.000Z","updated_at":"2025-03-20T21:54:38.000Z","dependencies_parsed_at":"2023-12-06T21:26:43.860Z","dependency_job_id":"6caa9c7e-803b-4202-8ee7-a354da0a6be6","html_url":"https://github.com/bancolombia/async-dataflow","commit_stats":{"total_commits":80,"total_committers":7,"mean_commits":"11.428571428571429","dds":0.5875,"last_synced_commit":"9695eac17ce4373f9b5b22d63864acf8644fc3a3"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fasync-dataflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fasync-dataflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fasync-dataflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bancolombia%2Fasync-dataflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bancolombia","download_url":"https://codeload.github.com/bancolombia/async-dataflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246933421,"owners_count":20857049,"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":["asynchronous-responses","elixir","hacktoberfest","open-source","realtime","websockets"],"created_at":"2024-08-01T12:02:08.697Z","updated_at":"2025-10-23T01:03:24.719Z","avatar_url":"https://github.com/bancolombia.png","language":"Elixir","readme":"[![Scorecards supply-chain security](https://github.com/bancolombia/async-dataflow/actions/workflows/scorecards-analysis.yml/badge.svg)](https://github.com/bancolombia/async-dataflow/actions/workflows/scorecards-analysis.yml)\n\n# Async DataFlow\n\nThe Async DataFlow component aims to deliver asynchronous responses in real time to client applications, thus enabling end-to-end asynchronois flows without losing the ability to respond in real time or eventually, send data to client applications as a result of asynchronous operations and oriented to `messages / commands / events` on the platform.\n\n\n## Repository\n\n- [Channel Sender](https://github.com/bancolombia/async-dataflow/tree/master/channel-sender) Distributed Elixir Cluster implementation of real time with websockets and notifications channels.\n\n```mermaid\n    C4Dynamic\n    Boundary(aa, \"Client side applications\") {\n        Component(cli, \"Single Page Application or Mobile App\", \"Javascript / Angular /Flutter\", \"\")\n    }\n\n    Boundary(xx, \"ADF\") {\n        Component(sender, \"Channel Sender\", \"\", \"\")\n    }\n\n    Boundary(zz, \"Backend\") {\n        Component(abl, \"Async business logic\")\n    }\n\n    Rel(cli, sender, \"create connection\")\n    Rel(cli, abl, \"Call Http or another entry point definition\")\n    Rel(abl, cli, \"Return Http Empty response\")\n    Rel(abl, sender, \"Send Response (Http)\")\n    Rel(sender, cli, \"Send Response (websocket)\")\n\n    UpdateElementStyle(sender, $fontColor=\"black\", $bgColor=\"orange\", $borderColor=\"black\")\n\n    UpdateRelStyle(cli, sender, $offsetX=\"-40\", $offsetY=\"-20\")\n    UpdateRelStyle(cli, abl,  $offsetX=\"-240\", $offsetY=\"-40\")\n    UpdateRelStyle(abl, cli,  $offsetX=\"30\", $offsetY=\"-40\")\n    UpdateRelStyle(abl, sender,  $offsetX=\"-60\", $offsetY=\"40\")\n    UpdateRelStyle(sender, cli, $offsetX=\"-40\", $offsetY=\"20\")\n    \n    UpdateLayoutConfig($c4ShapeInRow=\"2\", $c4BoundaryInRow=\"2\")\n```\n\n\n- [Channel Streams](https://github.com/bancolombia/async-dataflow/tree/master/channel-streams) Distributed Elixir Cluster implementation of a async messages router.\n\n```mermaid\n    C4Dynamic\n\n    Boundary(zz, \"Backend\") {\n        Component(abl, \"Async business logic\")\n        SystemDb(bus, \"Event bus\")\n    }\n    \n    Boundary(xx, \"ADF\") {\n        Component(sender, \"Channel Sender\", \"\", \"\")\n        Component(streams, \"Channel Streams\", \"\", \"\")\n    }\n\n    Boundary(aa, \"Client side applications\") {\n        Component(cli, \"Single Page Application or Mobile App\", \"Javascript / Angular /Flutter\", \"\")\n    }\n\n    Rel(abl, bus, \"Emit event\")\n    Rel(bus, streams, \"Subscribe event\")\n    Rel(streams, sender, \"route [Http]\")\n    Rel(sender, cli, \"Push response [websocket]\")\n\n    UpdateElementStyle(sender, $fontColor=\"black\", $bgColor=\"orange\", $borderColor=\"black\")\n    UpdateElementStyle(streams, $fontColor=\"black\", $bgColor=\"green\", $borderColor=\"black\")\n\n    UpdateRelStyle(abl, bus,  $offsetX=\"-40\", $offsetY=\"-40\")\n    UpdateRelStyle(bus, streams, $offsetX=\"-40\", $offsetY=\"-20\")\n    UpdateRelStyle(streams, sender, $offsetX=\"-33\", $offsetY=\"-20\")\n    UpdateRelStyle(sender, cli, $offsetX=\"-40\", $offsetY=\"-10\")\n    \n    UpdateLayoutConfig($c4ShapeInRow=\"2\", $c4BoundaryInRow=\"1\")\n```\n\n\n- [Client JS](https://github.com/bancolombia/async-dataflow/tree/master/clients/client-js) Javascript library for async data flow implementation for browsers.\n- [Client Dart](https://github.com/bancolombia/async-dataflow/tree/master/clients/client-dart) Dart library for async data flow implementation for flutter applications.\n\n- [Examples](https://github.com/bancolombia/async-dataflow/tree/master/examples)\n  The purpose of this project is to help the community to understand more the the async data flow component to implement in full asyncio solutions.\n\n## How can I help?\n\nReview the [issues](https://github.com/bancolombia/async-dataflow/issues). Read [how Contributing](https://github.com/bancolombia/async-dataflow/wiki/Contributing).\n","funding_links":[],"categories":["Elixir"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbancolombia%2Fasync-dataflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbancolombia%2Fasync-dataflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbancolombia%2Fasync-dataflow/lists"}