We can increase certain limits if user 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.
    • Append requests receive an HTTP 429.
    • AppendSession experience throttling.

Reads

Reading records older than the last 20 seconds is not explicitly limited currently, and can achieve:

  • tens of GiBps
  • thousands of concurrent readers

Reading records written within last 20 seconds is temporarily limited with a plan to increase by several orders of magnitude:

  • 500 MiBps per stream
  • 10 concurrent readers per stream

These limits will be unified and made more precise in the coming months.

Retention

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

Temporary limit for preview period: maximum retention of 28 days.

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.