diff --git a/diagrams/simplex1.mmd b/diagrams/simplex1.mmd
new file mode 100644
index 000000000..d4e9ad3d5
--- /dev/null
+++ b/diagrams/simplex1.mmd
@@ -0,0 +1,8 @@
+graph LR
+ S("sender (key 1)") --> C
+ C --> R("receiver (key 2)")
+ R --> C
+ subgraph connection
+ C{{"verify sender (1) ---> pubsub <---> verify receiver (2)"}}
+ end
+
\ No newline at end of file
diff --git a/diagrams/simplex1.svg b/diagrams/simplex1.svg
new file mode 100644
index 000000000..3f5cd1f35
--- /dev/null
+++ b/diagrams/simplex1.svg
@@ -0,0 +1,498 @@
+
\ No newline at end of file
diff --git a/diagrams/simplex2.mmd b/diagrams/simplex2.mmd
new file mode 100644
index 000000000..47842dab4
--- /dev/null
+++ b/diagrams/simplex2.mmd
@@ -0,0 +1,26 @@
+sequenceDiagram
+ participant S as sender (client)
+ participant A as API
+ participant Q as pubsub
+ participant P as publisher
+ participant R as receiver (client)
+ note over R: sign subscription (1)
+ R ->> P: subscribe to messages
+ note over P: verify subscriber (1)
+ alt subscriber verified?
+ P -->> Q: subscribe
+ else
+ P ->> R: reject subscription
+ end
+ note over S: sign message (2)
+ S ->> A: send message
+ note over A: verify sender (2)
+ alt sender verified?
+ A -->> Q: queue message
+ activate Q
+ else
+ A ->> S: reject message
+ end
+ Q -->> P: take message
+ deactivate Q
+ P ->> R: deliver message
diff --git a/diagrams/simplex2.svg b/diagrams/simplex2.svg
new file mode 100644
index 000000000..55af1592d
--- /dev/null
+++ b/diagrams/simplex2.svg
@@ -0,0 +1,498 @@
+
\ No newline at end of file