We can increase certain limits if feedback suggests they are too restrictive.

Basins

Each account can create up to 100 basins.

You can pick a delimiter such as / for namespacing streams within a basin. Streams can be listed with prefix filtering!

Records

  • Each record may be up to 1 MiB in metered bytes.
  • Batches may contain up to 1000 records, and cumulatively total up to 1 MiB in metered bytes.

S2 uses the following formula for metering record size:

metered_bytes = lambda record: 8 + 2 * len(record.headers) \
  + sum((len(name) + len(value)) for (name, value) in record.headers) \
  + len(record.body)

Appends

  • 125 MiBps per stream.
  • 200 batches per second per stream per client connection. When exceeded,
    • Append requests will receive an HTTP 429.
    • AppendSession will experience throttling.

Reads

Reads are highly scalable on both throughput and concurrency, due to S2’s decoupled architecture. The precise limits will be documented in the coming months.

Retention

Records may stay visible for a brief period after their retention window expires, typically on the order of minutes.

Maximum retention of 28 days is being enforced during the Preview period. We can enable retention by request.

Reconfiguration

Storage class changes (i.e. from Standard to Express, or vice versa) only take effect when a stream has been inactive for up to 10 minutes. This will become a live migration in future.