From dfac54de4701946f740aca1116a8613cbbeedf09 Mon Sep 17 00:00:00 2001
From: pablo
Date: Wed, 4 Jun 2025 18:16:43 +0300
Subject: [PATCH] Segmentation furps
---
FURPS/application/segmentation.md | 33 +++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
create mode 100644 FURPS/application/segmentation.md
diff --git a/FURPS/application/segmentation.md b/FURPS/application/segmentation.md
new file mode 100644
index 0000000..7a15463
--- /dev/null
+++ b/FURPS/application/segmentation.md
@@ -0,0 +1,33 @@
+# Segmentation FURPS
+
+## Functionality
+
+1. Outbound messages larger than the maximum Waku message size are partitioned in several messages to fit in Waku messages.
+2. Inbound partitioned messages are reconstructed in a whole message.
+3. A capping limit is applied to pre-segmented messages (e.g. 100MB).
+4. Messages under the maximum message size are not modified.
+
+## Usability
+
+1. Only takes a maximum message size as a parameter.
+
+## Reliability
+
+1. Reconstruction can be performed even when parts are received out or order.
+2. Reconstruction can be performed as long as 87.5% of the segments is received.
+3. If too many parts missing to reconstruct an informative error should be logged.
+
+## Performance
+
+1. The payload overhead does not exceed 12.5% + 100 bytes.
+
+## Supportability
+
+1. Nim
+2. Golang
+3. Rust
+
+## + (Privacy, Anonymity, Deployments)
+
+1. Segmentation metadata should not reveal information about the original message content
+2. Relevant for all Waku nodes