@@ -8,8 +8,36 @@ If you want to learn more about the journey and the product, you can watch the c
8
8
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.
9
9
10
10
![ plot] ( ./static/erlang_features.png )
11
+
11
12
## The abstract idea
12
13
![ 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
+
13
41
14
42
15
43
0 commit comments