Skip to content

Commit 700830d

Browse files
committed
[skip ci] update README.md
Signed-off-by: Lance-Drane <[email protected]>
1 parent 1d9b83f commit 700830d

File tree

1 file changed

+50
-3
lines changed

1 file changed

+50
-3
lines changed

README.md

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,57 @@ Effectively serves as a way for two message brokers to "share" messages across H
44

55
Specific INTERSECT messaging logic has its own module (see `shared-deps/src/intersect_messaging.rs`), so these applications could easily be forked to support another ecosystem with its own messaging protocol.
66

7-
This repository consists of two applications, neither of which can function without the other:
7+
This repository consists of two applications:
8+
9+
- `proxy-http-server` - subscribe to message brokers and emit the messages on a SSE endpoint, or publish messages on a POST endpoint
10+
- `proxy-http-client` - subscribe to the aforementioned server SSE endpoint and publish them to a broker, or subscribe to message brokers and publish their messages on the aforementioned POST endpoint.
11+
12+
The server can function as a standalone application, but the client needs to talk to a server application. The general architecture looks something like:
13+
14+
```
15+
------------
16+
| BROKER 1 |
17+
------------
18+
19+
^
20+
| AMQP
21+
v
22+
23+
---------------------
24+
| proxy-http-server |
25+
---------------------
26+
27+
^
28+
| HTTP
29+
v
30+
---------------------- SYSTEM DIVIDING LINE
31+
^
32+
| HTTP
33+
v
34+
35+
---------------------
36+
| proxy-http-client |
37+
---------------------
38+
39+
^
40+
| AMQP
41+
v
42+
43+
------------
44+
| BROKER 2 |
45+
------------
46+
47+
```
48+
49+
All applications connected to Broker 1 will share the same system, and all applications connected to Broker 2 will share the same system. Data may flow in either direction.
50+
51+
To prevent infinite loops and to ensure security, subscribers will not broadcast any messages which are determined to not originate from their system.
52+
53+
Caveats:
54+
- you should only deploy one `proxy-http-client` and one `proxy-http-server` per system at most
55+
- any other proxies you talk to should have different systems.
56+
- while you can have a `client` and a `server` application for both systems, you should only have one of the clients talk to the other's server. Don't connect both clients to both servers.
857

9-
- `proxy-http-server` - subscribe to message brokers and emit the messages on a SSE endpoint
10-
- `proxy-http-client` - subscribe to the aforementioned SSE endpoint and publish them to a broker.
1158

1259
Currently only supports AMQP 0-9-1 as the broker protocol but can potentially support others in the future
1360

0 commit comments

Comments
 (0)