Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/bancolombia/async-dataflow
Component to deliver asynchronous responses in real time to client applications
https://github.com/bancolombia/async-dataflow
asynchronous-responses elixir open-source realtime websockets
Last synced: 7 days ago
JSON representation
Component to deliver asynchronous responses in real time to client applications
- Host: GitHub
- URL: https://github.com/bancolombia/async-dataflow
- Owner: bancolombia
- Created: 2020-10-02T18:07:42.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-09-05T02:30:09.000Z (2 months ago)
- Last Synced: 2024-09-07T06:23:14.041Z (2 months ago)
- Topics: asynchronous-responses, elixir, open-source, realtime, websockets
- Language: Elixir
- Homepage:
- Size: 1020 KB
- Stars: 15
- Watchers: 8
- Forks: 6
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Security: SECURITY.md
Awesome Lists containing this project
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)
# Async DataFlow
The 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.
## Repository
- [Channel Sender](https://github.com/bancolombia/async-dataflow/tree/master/channel-sender) Distributed Elixir Cluster implementation of real time with websockets and notifications channels.
```mermaid
C4Dynamic
Boundary(aa, "Client side applications") {
Component(cli, "Single Page Application or Mobile App", "Javascript / Angular /Flutter", "")
}Boundary(xx, "ADF") {
Component(sender, "Channel Sender", "", "")
}Boundary(zz, "Backend") {
Component(abl, "Async business logic")
}Rel(cli, sender, "create connection")
Rel(cli, abl, "Call Http or another entry point definition")
Rel(abl, cli, "Return Http Empty response")
Rel(abl, sender, "Send Response (Http)")
Rel(sender, cli, "Send Response (websocket)")UpdateElementStyle(sender, $fontColor="black", $bgColor="orange", $borderColor="black")
UpdateRelStyle(cli, sender, $offsetX="-40", $offsetY="-20")
UpdateRelStyle(cli, abl, $offsetX="-240", $offsetY="-40")
UpdateRelStyle(abl, cli, $offsetX="30", $offsetY="-40")
UpdateRelStyle(abl, sender, $offsetX="-60", $offsetY="40")
UpdateRelStyle(sender, cli, $offsetX="-40", $offsetY="20")
UpdateLayoutConfig($c4ShapeInRow="2", $c4BoundaryInRow="2")
```- [Channel Streams](https://github.com/bancolombia/async-dataflow/tree/master/channel-streams) Distributed Elixir Cluster implementation of a async messages router.
```mermaid
C4DynamicBoundary(zz, "Backend") {
Component(abl, "Async business logic")
SystemDb(bus, "Event bus")
}
Boundary(xx, "ADF") {
Component(sender, "Channel Sender", "", "")
Component(streams, "Channel Streams", "", "")
}Boundary(aa, "Client side applications") {
Component(cli, "Single Page Application or Mobile App", "Javascript / Angular /Flutter", "")
}Rel(abl, bus, "Emit event")
Rel(bus, streams, "Subscribe event")
Rel(streams, sender, "route [Http]")
Rel(sender, cli, "Push response [websocket]")UpdateElementStyle(sender, $fontColor="black", $bgColor="orange", $borderColor="black")
UpdateElementStyle(streams, $fontColor="black", $bgColor="green", $borderColor="black")UpdateRelStyle(abl, bus, $offsetX="-40", $offsetY="-40")
UpdateRelStyle(bus, streams, $offsetX="-40", $offsetY="-20")
UpdateRelStyle(streams, sender, $offsetX="-33", $offsetY="-20")
UpdateRelStyle(sender, cli, $offsetX="-40", $offsetY="-10")
UpdateLayoutConfig($c4ShapeInRow="2", $c4BoundaryInRow="1")
```- [Client JS](https://github.com/bancolombia/async-dataflow/tree/master/clients/client-js) Javascript library for async data flow implementation for browsers.
- [Client Dart](https://github.com/bancolombia/async-dataflow/tree/master/clients/client-dart) Dart library for async data flow implementation for flutter applications.- [Examples](https://github.com/bancolombia/async-dataflow/tree/master/examples)
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.## How can I help?
Review the [issues](https://github.com/bancolombia/async-dataflow/issues). Read [how Contributing](https://github.com/bancolombia/async-dataflow/wiki/Contributing).