Skip to content

Commit bf79e52

Browse files
authored
Update README.md
Adding mermaid
1 parent d57ca80 commit bf79e52

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

README.md

+28
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,36 @@ If you want to learn more about the journey and the product, you can watch the c
88
I have seen lot of times this table from "Elixir in Action" book, and want to show how easy can actually is to enable this features in a real system.
99

1010
![plot](./static/erlang_features.png)
11+
1112
## The abstract idea
1213
![plot](./static/idea.png)
14+
Elixir, Erlang, OTP,the BEAM,Phoenix & Liveview and Nerves, is an amazing stack to build a rea-time distributed IoT platform.
15+
16+
```mermaid
17+
flowchart TD
18+
J["Endpoint"] <--> F["Router"]
19+
F <-- Handles Requests --> C("Cowboy - (HTTP & WebSocket)")
20+
A["LiveView (reactive controller)"] <-- Monitor current Connections --> B["Presence"]
21+
E("PubSub - (Message Queue)") --> A
22+
A <-- serves --> C
23+
A <--> D["Buisiness Logic API Layer"]
24+
E <-- broadcast --> D
25+
D <-- Caches Data --> H("ETS - (In-Memory Key-Value Store)")
26+
D <-- Handles --> G("GenServers - (Background Job)") & I("Task - (Long Running Request)")
27+
28+
style J fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
29+
style F fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
30+
style C fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
31+
style A fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
32+
style B fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
33+
style E fill:#e85102,stroke:#ccc,stroke-width:2px,color:#FFFFFF
34+
style D fill:#8205a8,stroke:#ccc,stroke-width:2px,color:#FFFFFF
35+
style H fill:#a80513,stroke:#ccc,stroke-width:2px,color:#FFFFFF
36+
style G fill:#a80513,stroke:#ccc,stroke-width:2px,color:#FFFFFF
37+
style I fill:#a80513,stroke:#ccc,stroke-width:2px,color:#FFFFFF
38+
linkStyle 0 stroke:#757575
39+
```
40+
1341

1442

1543

0 commit comments

Comments
 (0)