Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Data-Marshaling-and-Transmission.md #233

Merged
merged 1 commit into from
Mar 5, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 9 additions & 8 deletions docs/product/Data-Marshaling-and-Transmission.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
---
title: Data Marshaling and Transmission
sidebar_position: 11
description: How about keeping it simple with something like "How Embrace SDKs Transfer Data from Devices to Our Servers
description: How Embrace SDKs Transfer Data from Devices to Our Servers
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it in the style guide to capitialize a description like a title?

---

# Overview
# Data Marshaling and Transmission

---

## Overview

Embrace is designed to be a “good citizen” within your mobile application. We’re aware that many of our customers have critical user journeys (such as completing a transaction) that cannot be interrupted or slowed by non-essential network activity. To address these concerns:

Expand All @@ -18,22 +19,22 @@ Embrace is designed to be a “good citizen” within your mobile application. W

These design principles ensure that user-facing requests (such as booking flows, checkouts, or other high-priority transactions) will be impacted as little as possible by the overhead of transimitting telemetry.

# FAQs
## FAQs

---

## **Will Embrace SDK’s network requests block or slow down my main APIs?**
### **Will Embrace SDK’s network requests block or slow down my main APIs?**

No. We send data in small, batched increments and only one batch at a time. On Android, this is a single network call at a time. On iOS, we use a separate URLSession with lower priority. This ensures Embrace’s requests do not interfere with higher-priority user or application traffic and limits bandwidth consumption.

## **What happens if the user is on a weak connection?**
### **What happens if the user is on a weak connection?**

We employ exponential backoff for retries when a connection fails and do not attempt to send if the device is offline. This means that if the first request fails, we retry in 1 minute, then 2 minutes, then 4 minutes, doubling at every interval. This prevents us from continuously saturating a weak network when timeouts or transmission failure are likely.

## **Can we configure the SDK to only send data when on Wi-Fi or in the background?**
### **Can we configure the SDK to only send data when on Wi-Fi or in the background?**

No. We prioritize quick, low-frequency uploads to avoid large backlogs and ensure timely observability. Restricting uploads to Wi-Fi or background-only would risk missing critical data if the app is not backgrounded for a long enough period or closed altogether.

## **Is it possible to disable data sending entirely during critical user flows?**
### **Is it possible to disable data sending entirely during critical user flows?**

We do not offer an official toggle for this. However, if needed, please reach out to discuss advanced use cases. Be aware that disabling data transmission for extended periods can create gaps in observability.