diff --git a/docs/architecture.md b/docs/architecture.md
index 8272384..6cd0afd 100644
--- a/docs/architecture.md
+++ b/docs/architecture.md
@@ -110,24 +110,37 @@ env = smartreceive(msg; fileserver_download_handler=_fetch_with_backoff, max_ret
## Architecture Diagram
```mermaid
-flowchart TD
- subgraph Client
- App[Julia Application]
+flowchart TB
+ subgraph Sender["Julia Application (Sender)"]
+ SenderApp[App Code]
+ NATSBridge_Send[NATSBridge]
+ NATS_Client[NATS.jl]
end
- subgraph Server
- Julia[Julia Service]
- NATS[NATS Server]
- FileServer[HTTP File Server]
+ subgraph Receiver["Julia Application (Receiver)"]
+ ReceiverApp[App Code]
+ NATSBridge_Recv[NATSBridge]
+ NATS_Client_Recv[NATS.jl]
end
- App -->|NATS| NATS
- NATS -->|NATS| Julia
- Julia -->|NATS| NATS
- Julia -->|HTTP POST| FileServer
+ subgraph Infrastructure["Infrastructure"]
+ NATS[NATS Server
Message Broker]
+ FileServer[HTTP File Server
Upload/Download]
+ end
- style App fill:#e8f5e9
- style Julia fill:#e8f5e9
+ SenderApp --> NATSBridge_Send
+ NATSBridge_Send --> NATS_Client
+ NATS_Client --> NATS
+
+ NATS --> NATS_Client_Recv
+ NATS_Client_Recv --> NATSBridge_Recv
+ NATSBridge_Recv --> ReceiverApp
+
+ NATSBridge_Send -.->|HTTP POST upload| FileServer
+ FileServer -.->|HTTP GET download| NATSBridge_Recv
+
+ style SenderApp fill:#e8f5e9
+ style ReceiverApp fill:#e8f5e9
style NATS fill:#fff3e0
style FileServer fill:#f3e5f5
```
diff --git a/docs/implementation.md b/docs/implementation.md
index c9a29e2..304ad44 100644
--- a/docs/implementation.md
+++ b/docs/implementation.md
@@ -117,29 +117,42 @@ env = smartreceive(msg; fileserver_download_handler=_fetch_with_backoff, max_ret
The Julia implementation follows the Claim-Check pattern:
-```
-┌─────────────────────────────────────────────────────────────────────────┐
-│ SmartSend Function │
-└─────────────────────────────────────────────────────────────────────────┘
- │
- ▼
-┌─────────────────────────────────────────────────────────────────────────┐
-│ Is payload size < 1MB? │
-└─────────────────────────────────────────────────────────────────────────┘
- │
- ┌─────────────────┴─────────────────┐
- ▼ ▼
- ┌─────────────────┐ ┌─────────────────┐
- │ Direct Path │ │ Link Path │
- │ (< 1MB) │ │ (> 1MB) │
- │ │ │ │
- │ • Serialize to │ │ • Serialize to │
- │ Buffer │ │ Buffer │
- │ • Base64 encode │ │ • Upload to │
- │ • Publish to │ │ HTTP Server │
- │ NATS │ │ • Publish to │
- │ │ │ NATS with URL │
- └─────────────────┘ └─────────────────┘
+```mermaid
+flowchart TB
+ subgraph Sender["Julia Application (Sender)"]
+ App[App Code]
+ NATSBridge[NATSBridge]
+ NATS_Client[NATS.jl]
+ end
+
+ subgraph Receiver["Julia Application (Receiver)"]
+ App_Recv[App Code]
+ NATSBridge_Recv[NATSBridge]
+ NATS_Client_Recv[NATS.jl]
+ end
+
+ subgraph Infrastructure["Infrastructure"]
+ NATS[NATS Server
Message Broker]
+ FileServer[HTTP File Server
Upload/Download]
+ end
+
+ App --> NATSBridge
+ NATSBridge --> NATS_Client
+ NATS_Client --> NATS
+
+ NATS --> NATS_Client_Recv
+ NATS_Client_Recv --> NATSBridge_Recv
+ NATSBridge_Recv --> App_Recv
+
+ NATSBridge -.->|HTTP POST upload| FileServer
+ FileServer -.->|HTTP GET download| NATSBridge_Recv
+
+ style App fill:#e8f5e9
+ style App_Recv fill:#e8f5e9
+ style NATSBridge fill:#c5e1a5
+ style NATSBridge_Recv fill:#c5e1a5
+ style NATS fill:#fff3e0
+ style FileServer fill:#f3e5f5
```
## smartsend Return Value
diff --git a/examples/walkthrough.md b/examples/walkthrough.md
index 3dad9eb..3e2f213 100644
--- a/examples/walkthrough.md
+++ b/examples/walkthrough.md
@@ -32,17 +32,38 @@ Each section builds on the previous one, gradually increasing in complexity.
```mermaid
flowchart TB
- subgraph NATSBridge_Architecture["NATSBridge Architecture"]
- direction TB
-
- Julia["Julia (NATS.jl)"]
- NATS["NATS Server"]
- FileServer["File Server
(HTTP Upload)"]
-
- Julia <--> NATS
- Julia --> FileServer
- NATS --> FileServer
+ subgraph Sender["Julia Application (Sender)"]
+ SenderApp[App Code]
+ NATSBridge_Send[NATSBridge]
+ NATS_Client[NATS.jl]
end
+
+ subgraph Receiver["Julia Application (Receiver)"]
+ ReceiverApp[App Code]
+ NATSBridge_Recv[NATSBridge]
+ NATS_Client_Recv[NATS.jl]
+ end
+
+ subgraph Infrastructure["Infrastructure"]
+ NATS[NATS Server
Message Broker]
+ FileServer[HTTP File Server
Upload/Download]
+ end
+
+ SenderApp --> NATSBridge_Send
+ NATSBridge_Send --> NATS_Client
+ NATS_Client --> NATS
+
+ NATS --> NATS_Client_Recv
+ NATS_Client_Recv --> NATSBridge_Recv
+ NATSBridge_Recv --> ReceiverApp
+
+ NATSBridge_Send -.->|HTTP POST upload| FileServer
+ FileServer -.->|HTTP GET download| NATSBridge_Recv
+
+ style SenderApp fill:#e8f5e9
+ style ReceiverApp fill:#e8f5e9
+ style NATS fill:#fff3e0
+ style FileServer fill:#f3e5f5
```
### Message Flow