Menu

Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Sync Limits

In order to guarantee good quality of service across for all your customers across all your apps, Sync applies rate limits to the actions (reads and writes) taken by your code in the running app. Note that state fanout—the delivery of realtime updates to your app when it is subscribed to a Sync object—is neither a read action nor a write action, and therefore we do not limit the rate of delivery to subscribers.

The following tables summarize the various rate limits that apply.

Connection Limits

Limited Quantity Prescribed Limit Notes
Number of
Standing Connections
up to 7,000
per Twilio Account

This applies across all subaccounts. Contact sales for more information or to request an override.

Rate of
Connection Establishment (new or re-established)
up to 50/s
per Twilio Account
This applies across all subaccounts. Contact sales for more information or to request an override.

Rate of
Upstream Requests

up to 20,000/s
per Twilio Account

up to 500/s
per connection

This applies across all subaccounts. Contact sales for more information or to request an override.

Sync Activity Limits

Limited Quantity Prescribed Limit Notes
Rate of
Object Writes
up to 20/s per object
burst window: 10s
  • An object write is an explicit request in your code to change a value stored in Sync.
  • The limit applies at the top level of each Document, Map, and List, e.g. updating any item in a Map still counts towards the containing Map's write rate.
  • Fanout to subscribers is not rate-limited. If a write is accepted, all online subscribers will receive a state update and their number is inconsequential to the object's read or write usage.
  • Objects larger than 1kb are rate-limited more aggressively. The most strict rate limit, applicable for payloads 10kb and larger, is 2 writes/s sustained.
Rate of
Object Reads
up to 20/s per object
burst window: 10s
  • Object reads are effectively GET requests for Sync data. These usually occur when initializing your Sync app. Fanout of state updates to an online subscriber does not count as a read.
  • The limit applies at the top level of each Document, Map, and List.
  • When requesting List or Map items en masse, each requested page counts as one read.
Rate of
Stream Messages
up to 30/s per stream
burst window: 10s
  • Fanout to subscribers is not rate-limited. If a message is accepted, delivery will be scheduled for all subscribers.
  • Delivery is not guaranteed, and occurs independently of the message's acceptance from the sender. If a receiver fails to accept a message within a few seconds of acceptance, Sync will silently drop that message for that subscriber.
  • Messages larger than 1kb will be rate-limited more aggressively. The most strict rate limit, applicable for payloads larger than 3kb, is 7 messages/s sustained.
Rate of
Live Queries

up to 200/s per index per service instance

up to 20/s per index per client identity

burst window: 10s

  • Establishing a new Live Query fetches a dataset with filters applied and is rate controlled.
  • Live Query global rate control applies per individual index within a single Sync service instance.
  • Live Query client rate control applies per client identity established by Sync SDK.
Number of
Sync Objects
Unlimited
  • You can create at most 20 objects per second, per Sync service.
  • Deleting objects is free, and not subject to any rate limit.

Sync Payload Limits

Limited Quantity Prescribed Limit Notes
Size of Document payload 16 KiB Sync Documents may contain payloads up to 16 KiB of valid JSON serialized to a UTF-8 string.
Size of List Item payload 16 KiB Sync Lists may contain Items with payloads up to 16 KiB of valid JSON serialized to a UTF-8 string.
Number of Items in the List 1,000,000 Sync Lists should not contain more than a million of items.
Size of Map Item payload 16 KiB Sync Maps may contain Items with payloads up to 16 KiB of valid JSON serialized to a UTF-8 string.
Number of Items in the Map 1,000,000 Sync Maps should not contain more than a million of items.
Size of Stream Message 4 KiB Sync Message Streams may deliver payloads up to 4 KiB of valid JSON serialized to a UTF-8 string.
Length of Unique Name 320 characters Unique names assigned to Documents, Lists, Maps, Message Streams may contain up to 320 characters (UTF-8).
Length of Identity 256 characters Client identity may contain up to 256 characters (UTF-8).

Sync Insights Client Limits

(Currently for Flex customers only)

Limited Quantity Prescribed Limit Notes
Number of active LiveQueries per SDK client 2000 The number of active Sync LiveQueries initiated and tracked by a single SDK client instance must not exceed 2000.
Number of operators in query expression 30 Query expression may contain any combination of the following operators: and, or, in, eq, not_in, not_eq, contains, however overall number of operators in query expression must be less than 30.
Array size in query expression 30

Any array within query expression must contain less than 30 elements.

Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.