Design at: design/mobile-rum-sdk-evaluation/design-docs
Backend changes exist to make the OpenObserve RUM intake accept the
mobile SDK wire format alongside the existing browser format.
src/api/src/handler/http/request/rum/ingest.rs
200 → 202 Accepted on /rum, /logs, /replay | ---> OpenObserve-family
SDKs (which the mobile forks derive from) treat any non-202 as an
unexpected error and drop the batch.
#[serde(default)] on Event ---> Mobile replay omits creation_reason /
index_in_view that the browser format sends.
Multi-segment replay handling ---> Browser sends 1 segment + 1 event
object; mobile sends N segment parts + one event JSON array. Handler now
collects all segments, parses event as array-or-object, pairs them,
emits NDJSON → one _sessionreplay row per segment.
MAX_SEGMENTS=200, 16 MB decompressed cap via .take() --->
Decompression-bomb guard, newly needed now that N segments are accepted.