You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+50-3Lines changed: 50 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,10 +4,57 @@ Effectively serves as a way for two message brokers to "share" messages across H
4
4
5
5
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.
6
6
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.
8
57
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.
11
58
12
59
Currently only supports AMQP 0-9-1 as the broker protocol but can potentially support others in the future
0 commit comments