+---------------------------------------------------------------------------------------------------------------------------------+
|                                                        Client Application                                                       |
+-----------------------------------------------------------------|---------------------------------------------------------------+
|                      User Application Thread(s)                 |                  Background Runtime (Tokio Tasks)             |
|-----------------------------------------------------------------|---------------------------------------------------------------|
|                                                                 |                                                               |
|  [ main() ]                                                     |           +---------------------------------------------+     |
|     |                                                           |           |           [ ClientRunner Task ]           |     |
|     v                                                           |           |  (Manages connection/reconnection cycles)   |     |
| [ EchoPlatform ]                                                |           |                                             |     |
|     |                                                           |           | <-----[RunnerCommand]---- (runner_cmd_rx) <---+     |
|     v                                                           |           +-----------------|-----------------------------+     |
| +-----------------+   ---(get_handle)---> { Module Handles } <------------+            | (when connected)                           |
| | [Client Handle] |                        (Arc<RwLock<Map>>)            |            v                                          |
| +-----------------+   <--(.echo("Hi"))--- [ User Code ]                   | +------------------------+   +------------------------+ |
|   |         |                                                           | | [ WebSocket Writer ]   |   | [ WebSocket Reader ]   | |
|   |         +-------------------------[Message]-----------> (to_ws_tx) --> | | (pulls from to_ws_rx)  |   | (pushes to Router)   | |
|   |                                                                     | +----------|-----------+   +----------|-----------+ |
|   |                                                                     |            |                        | [Arc<Message>]  |
|   |                                                                     |            v                        v                 |
|   |                                                                     | [ WebSocket Server ] <===> [ Router ] ----> [Lightweight Handler]
|   +----(.get_handle<EchoModule>)                                        |                                  | (to ALL)        |
|                  |                                                      |                                  |                 |
|                  v                                                      |                                  | (to FIRST match)|
|   +----------------------------------------------------------------------------+                         |                 |
|   |            |                                                        |      +------[Arc<Message>]-----> (msg_rx)        |
|   v            v                                                        |      |                         +-----------------+ |
| [EchoHandle]  [StreamHandle]                                            |      |                         | [EchoModule Task] | |
|   |    ^         |                                                      |      | (cmd_tx/cmd_ret_rx)     | (select! loop)  | |
|   |    |         +------[bool]----->(cmd_tx)----+                       |      + <----[String]------------ (cmd_ret_tx)      | |
|   |    |                             (for Stream)|                      |      |                         |                 | |
|   |    +----------[String]-----------(cmd_ret_rx)|                      |      | (to_ws_tx) ----[Message]-> (to the Writer Task)
|   |                                  (from Echo) |                      |      |                                           |
|   +----[String]---->(cmd_tx)----------+          |                      |      +-------------------------------------------+
|                      (for Echo)       |          |                      |
|                                       v          v                      |      +------------------+  +---------------------+
|                                 +------------------+  +---------------------+ |      | [StreamModule Task] |  | [PeriodicSender Task] |
|                                 | [ApiModule Task] |  | [ApiModule Task]    | |      +---------------------+  +---------------------+
|                                 +------------------+  +---------------------+ |
                                                                                  |
+---------------------------------------------------------------------------------------------------------------------------------+