Creating a Stream Pool

Stream pools are logical groupings for streams. Every stream must be a member of a stream pool. If you don't create a stream pool, the Streaming service uses a default pool to contain your streams.

To review requirements for creating and managing streams, see Getting Started with Streaming.

    1. Access the Streaming service in the Console.
    2. Under Analytics, click Stream Pools to display a list of existing stream pools.
    3. Click Create Stream Pool.
    4. Enter a name for the stream pool. Avoid entering confidential information.
    5. Select the compartment for the stream pool.
    6. Select Endpoint Type. Click Public Endpoint or Private Endpoint, depending on whether you want to restrict traffic to streams in this stream pool to a private endpoint that doesn't require traffic to traverse the internet.

      To create a private endpoint, you need access to a virtual cloud network (VCN) with a private subnet. Select a VCN with a private subnet where DNS resolution is also enabled, and then select the subnet.

      If instead you want to assign a specific private IP address, you must choose one that belongs to the subnet's CIDR. By default, the Networking service assigns a random private IP address on your behalf and applies no security rules to the stream pool. For more information, see VCNs and Subnets.

      You can also select an existing network security group to apply the same set of security rules to each stream in the pool.

    7. Under Configure Encryption Settings, select how to encrypt the streams in the stream pool.

      By default, Encrypt using Oracle-managed keys is selected. If you want to encrypt the data in the streams in this stream pool by using your own Vault encryption key, select Encrypt using customer-managed keys. To use the Vault service, you need access to a vault and key, and you must allow the service to use the key.

      • Vault: Select the vault that contains the master encryption key that you want to use.
      • Master encryption key: Select the master encryption key that you want to use.

      For more information about encryption with a Vault key that you manage, see Overview of Vault and Managing Keys.

    8. To add tags or if you intend to use Kafka with this stream pool, click Show Advanced Options.
    9. (Optional) Assign tags to the stream pool. If you have permissions to create a resource, then you also have permissions to apply free-form tags to that resource. To apply a defined tag, you must have permissions to use the tag namespace. For more information about tagging, see Resource Tags. If you're not sure whether to apply tags, skip this option (you can apply tags later) or ask an administrator.
    10. To use the stream pool with Kafka, select Auto create topics and configure your stream settings:
      • Default Retention Period (Hours): Specify the number of hours for the stream's retention period.
      • Default Number of Partitions: Specify the default number of partitions for the stream.
      • Select View Kafka settings after the Stream pool is created to display the Kafka Connection settings for the stream pool after it's created.
    11. Click Create.
  • For information about using the CLI, see Command Line Interface (CLI). For a complete list of flags and options available for CLI commands, see the Command Line Reference.


    The examples in this section use the full syntax for all parameters, for example --compartment-id. For some parameters, there are shortened versions that you can use instead, like -c. See the CLI online help for instances of a shortened parameter associated with a command.
    oci streaming admin stream-pool create --name <stream_pool_name> --compartment-id <compartment_OCID>

    For example:

    oci streaming admin stream-pool create --name MyStreamPool --compartment-id ocid1.tenancy.oc1..exampleuniqueID
      "data": {
        "compartment-id": "ocid1.tenancy.oc1..exampleuniqueID",
        "custom-encryption-key": {
          "key-state": "NONE",
          "kms-key-id": null
        "defined-tags": {},
        "endpoint-fqdn": null,
        "freeform-tags": {},
        "id": "ocid1.streampool.oc1.phx.exampleuniqueID",
        "is-private": false,
        "kafka-settings": {
          "auto-create-topics-enable": false,
          "bootstrap-servers": null,
          "log-retention-hours": 24,
          "num-partitions": 1
        "lifecycle-state": "CREATING",
        "lifecycle-state-details": null,
        "name": "MyStreamPool",
        "private-endpoint-settings": {
          "nsg-ids": null,
          "private-endpoint-ip": null,
          "subnet-id": null
        "time-created": "2020-11-02T23:01:59.429000+00:00"
      "etag": "\"b0066564-4bf4-4e27-9255-9055e69a7808-03668273-b0d5-4b8b-9370-74522c29eb56\""

    Provide input for --custom-encryption-key-details, --private-endpoint-details, and --kafka-settings as valid formatted JSON. See Passing Complex Input and Using a JSON File for Complex Input for information about JSON formatting.
  • Use the CreateStreamPool API operation to create stream pools.

    For information about using the API and signing requests, see REST API documentation and Security Credentials. For information about SDKs, see SDKs and the CLI.