rm segmentation api details

This commit is contained in:
Ivan FB 2026-04-23 23:37:01 +02:00
parent bdab8f7cab
commit d85c71b7d1
No known key found for this signature in database
GPG Key ID: DF0C67A04C543270

View File

@ -105,28 +105,6 @@ This API considers the types defined by [MESSAGING-API](/standards/application/m
```yaml
types:
MessageChunk:
type: object
description: "Represents the minimum unit of data transmitted across the network. Its size is governed by SegmentationConfig. Chunks are chained to their predecessors, and any chunk whose linkage to its predecessor cannot be verified MUST be discarded.
Only the first chunk on every message, is rate-limited (RLN) and the subsequent chunks MUST be accepted rate-limit wise."
fields:
chunkId:
type: string
description: UUID for the chunk
previousChunkId:
type: string
description: Previous chunk ID. Chunks with unvalidated previous chunks MUST be rejected.
This field is empty when chunkIndex == 0.
chunkIndex:
type: uint
description: "Zero-based position of this chunk within the ordered sequence of chunks that form the original message."
lastChunkIndex:
type: uint
description: "All chunks of same message have the same value, i.e., num-chunks - 1."
requestId:
type: RequestId
description: "The request id this chunk belongs to. This is generated by the send function. `RequestId` is defined in [MESSAGING-API](./messaging-api.md)."
SyncStatusDetail:
type: object
description: "Provides a snapshot of the channel's synchronisation state."
@ -220,7 +198,7 @@ types:
fields:
segmentationConfig:
type: SegmentationConfig
description: "Configuration for message segmentation. Please refer to [SEGMENTATION](./segmentation.md) for more details."
description: "Configuration for message segmentation. Refer to [SEGMENTATION-API](./segmentation-api.md) for details."
sdsConfig:
type: SdsConfig
description: "Configuration for Scalable Data Sync."
@ -233,15 +211,6 @@ types:
default: none
description: "Optional pluggable encryption implementation. If none, messages are sent unencrypted."
SegmentationConfig:
type: object
fields:
chunkSizeBytes:
type: uint
default: 102400 # 100 KiB
description: "Maximum chunk size in bytes.
Messages larger than this value are split before SDS processing."
SdsConfig:
type: object
fields:
@ -425,7 +394,7 @@ functions:
When `send` is called, the implementation MUST process the message in the following order:
1. **Segment**: Split the payload into chunks of at most `chunkSizeBytes` as defined in `SegmentationConfig`.
1. **Segment**: Split the payload into chunks as defined in [SEGMENTATION-API](./segmentation-api.md).
2. **Apply SDS**: Register each chunk with the SDS layer to track acknowledgements and enable retransmission.
3. **Encrypt**: If an `IEncryption` implementation is provided, encrypt each chunk before transmission.
4. **Dispatch**: Send each chunk via the underlying [MESSAGING-API](/standards/application/messaging-api.md).
@ -454,15 +423,7 @@ Chunks MUST NOT be sent at a rate that would violate the RLN message rate limit
### Segmentation
Segmentation splits outgoing messages into chunks before SDS processing.
This ensures each chunk fits within the network's maximum message size.
- The default chunk size is `100 KiB` (`102400 bytes`.)
- Chunks MUST be tagged with metadata sufficient for the receiver to reassemble the original message:
a message identifier, chunk index, and total chunk count.
- Segmentation MUST be transparent to the SDS layer; SDS operates on individual chunks.
- The maximum allowed message size is `1MiB` (`1048576 bytes`.)
- Messages that are bigger than the maximum allowed size will be discarded automatically and an error will be given to the caller.
See [SEGMENTATION-API](./segmentation-api.md).
### Scalable Data Sync (SDS)