Astra Streaming limits

Astra Streaming includes guardrails and limits to ensure best practices, foster availability, and promote optimal configurations for your databases.

Unless otherwise noted, the following limits apply to shared clusters. In general, dedicated clusters have more relaxed limits than shared clusters, and some limits can be changed by contacting DataStax Support.

Astra Streaming guardrails

Guardrails are provisioned in the default settings for Astra Streaming. You can’t directly change these guardrails. For dedicated clusters, some guardrails can be changed by contacting DataStax Support.

Guardrail Limit Comments

Number of tenants per organization

  • Shared clusters: 10

  • Dedicated clusters: Unlimited

This limit can’t be changed for shared clusters.

Number of namespaces per tenant

All clusters: 20

Number of topics per namespace

  • Shared clusters: 100

  • Dedicated clusters: 5000

Max message size

  • Shared clusters: 5MB

  • Dedicated clusters: Customizable

Max throughput per topic for consumers

  • Shared clusters: 5000 messages per second, 25MB per second

  • Dedicated clusters: Customizable

This limit applies to non-partitioned topics and individual partitions of partitioned topics.

Max throughput per topic for producers

  • Shared clusters: 5000 messages per second, 25MB per second

  • Dedicated clusters: Customizable

This limit applies to non-partitioned topics and individual partitions of partitioned topics, regardless of the number of producers to a topic. If there are multiple producers to a topic, they can produce a combined maximum of 5000 messages per second.

Max throughput per topic for subscriptions

  • Shared clusters: 5000 messages per second, 25MB per second

  • Dedicated clusters: Customizable

This limit applies to non-partitioned topics and individual partitions of partitioned topics, regardless of the number of subscribers to a topic. If there are multiple subscriptions to a topic, they can dispatch a combined maximum of 5000 messages per second.

Auto topic creation

All clusters: Disabled

Max number of partitions per topic

All clusters: 128

Number of producers per topic

  • Shared clusters: 50

  • Dedicated clusters: 500

Number of consumers per topic

  • Shared clusters: 50

  • Dedicated clusters: 500

Number of subscriptions per topic

  • Shared clusters: 50

  • Dedicated clusters: 500

Max unacknowledged messages per consumer

All clusters: 50000

Max unacknowledged messages per subscription

All clusters: 200000

Subscription expiry

All clusters: Not set

Astra Streaming namespace policies

These namespace policies are initially provisioned in the default settings for Astra Streaming, and you can change them:

Policy Default Setting Available in the Astra Portal

Max retention time

Disabled/no data retention by default

Yes

Max retention size

Disabled/no data retention by default

Yes

Max TTL

Infinite, minimum setting is 2 days

Yes

Backlog size

5GB, minimum setting is -1, which disables backlog size quota enforcement

Yes

Backlog Quota Retention Policy

Producer Exception

Yes

Unload topic

Enabled

Yes

Message deduplicate

Disabled

No

Subscription auto creation

Enabled

No

Subscription expiration per namespace

Default policy: subscription_expiration_time_minutes as 0

No

Inactive topic policy

Default policy: delete_when_no_subscriptions set to two days

No

Character limit

The total characters of tenant name, namespace name, and function name cannot exceed 54 characters. This is a Kubernetes restriction based on a pod label’s maximum size of 63 characters. You can read more about Kubernetes pod naming restrictions here.

Namespace policy configuration file

The following is an example of a default namespace policy with limits set.

Default namespace policy with limits set
{
  "auth_policies" : {
    "namespace_auth" : {
      "client;{client key}" : [ "consume", "produce" ],
      "websocket" : [ "consume", "produce" ]
    },
    "destination_auth" : { },
    "subscription_auth_roles" : { }
  },
  "replication_clusters" : [ "pulsar-gcp-europewest1" ],
  "bundles" : {
    "boundaries" : [ "0x00000000", "0x40000000", "0x80000000", "0xc0000000", "0xffffffff" ],
    "numBundles" : 4
  },
  "backlog_quota_map" : {
    "destination_storage" : {
      "limit" : 1000000000,
      "policy" : "producer_exception"
    }
  },
  "clusterDispatchRate" : { },
  "topicDispatchRate" : {
    "pulsar-gcp-europewest1" : {
      "dispatchThrottlingRateInMsg" : 5000,
      "dispatchThrottlingRateInByte" : 25000000,
      "relativeToPublishRate" : false,
      "ratePeriodInSecond" : 1
    }
  },
  "subscriptionDispatchRate" : {
    "pulsar-gcp-europewest1" : {
      "dispatchThrottlingRateInMsg" : 5000,
      "dispatchThrottlingRateInByte" : 25000000,
      "relativeToPublishRate" : false,
      "ratePeriodInSecond" : 1
    }
  },
  "replicatorDispatchRate" : { },
  "clusterSubscribeRate" : {
    "pulsar-gcp-europewest1" : {
      "subscribeThrottlingRatePerConsumer" : 5000,
      "ratePeriodInSecond" : 30
    }
  },
  "persistence" : {
    "bookkeeperEnsemble" : 2,
    "bookkeeperWriteQuorum" : 2,
    "bookkeeperAckQuorum" : 2,
    "managedLedgerMaxMarkDeleteRate" : 0.0
  },
  "deduplicationEnabled" : false,
  "autoTopicCreationOverride" : {
    "allowAutoTopicCreation" : false,
    "topicType" : "",
    "defaultNumPartitions" : 0
  },
  "publishMaxMessageRate" : {
    "pulsar-gcp-europewest1" : {
      "publishThrottlingRateInMsg" : 1000,
      "publishThrottlingRateInByte" : 5000000
    }
  },
  "latency_stats_sample_rate" : { },
  "message_ttl_in_seconds" : 0,
  "subscription_expiration_time_minutes" : 0,
  "retention_policies" : {
    "retentionTimeInMinutes" : 2880,
    "retentionSizeInMB" : -1
  },
  "deleted" : false,
  "encryption_required" : false,
  "inactive_topic_policies" : {
    "inactiveTopicDeleteMode" : "delete_when_no_subscriptions",
    "maxInactiveDurationSeconds" : 86400,
    "deleteWhileInactive" : true
  },
  "subscription_auth_mode" : "None",
  "max_producers_per_topic" : 50,
  "max_consumers_per_topic" : 50,
  "max_consumers_per_subscription" : 50,
  "max_unacked_messages_per_consumer" : 50000,
  "max_unacked_messages_per_subscription" : 200000,
  "compaction_threshold" : 0,
  "offload_threshold" : -1,
  "offload_deletion_lag_ms" : 0,
  "schema_auto_update_compatibility_strategy" : "Full",
  "schema_compatibility_strategy" : "UNDEFINED",
  "is_allow_auto_update_schema" : true,
  "schema_validation_enforced" : false
}

Astra Streaming topic and namespace actions

These topic and namespace actions are provisioned in the default settings by Astra Streaming. You can perform these actions in the Astra Portal or programmatically with a sufficiently authorized role or authentication token.

Allowed Action Default Setting Available in the Astra Portal

Terminate topic

Enabled

No

Unload namespace

Enabled

No

Clear backlog at topic level

Enabled

No

Clear backlog at namespace level

Enabled

No

Set compaction threshold at namespace level

Disabled

No

Trigger compaction at topic level

Enabled

No

Topic compaction

Enabled

No

All subscription expiration

Disabled

No

Function and connector resources

A function instance is a unit used for scaling Pulsar functions or Pulsar IO connectors running on Astra Streaming. Each function instance is assigned a specific amount of CPU and memory which can be allocated to a Pulsar function. Each Pulsar function running on Astra Streaming has a minimum of one function instance allocated to it.

Functions and connector resources for function instances are set in the control plane based as resource limits. You can’t customize these resources.

The default settings are as follows:

Cluster type CPU per instance RAM per instance Maximum function instances per namespace

Shared

0.25 core

500MB

Varies by plan

Dedicated

0.50 core

1GB

5000

Immutable configurations

The following configurations can’t be changed:

  • Data persistency (En, Qw, Qa)

  • Managedledger policy/deletion

  • Namespace bundle configurations:

    • Bundle split

    • Bundle level clear backlog

    • Bundle level unload

    • Bundle level subscribe and unsubscribe

  • Replication

  • Delayed delivery

  • Offload policy

  • Offload deletion

Unsupported pulsar-admin commands

Astra Streaming doesn’t support the following pulsar-admin commands because they aren’t applicable in a cloud environment or they could cause privacy or data integrity issues:

  • bookies

  • brokers

  • broker-stats

  • clusters

  • ns-isolation-policies

  • resource-quotas

  • tenants

Was this helpful?

Give Feedback

How can we improve the documentation?

© 2024 DataStax | Privacy policy | Terms of use

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: +1 (650) 389-6000, info@datastax.com