> ## Documentation Index
> Fetch the complete documentation index at: https://docs.streamnative.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure Cluster Features

This topic describes how to enable, disable, and configure cluster features for your cluster. For general guidance on configuring your cluster, see [Cluster Configuration Overview](/cloud/clusters/configure-clusters/cluster-configuration-overview).

<Note>
  To protect running workloads, the Cloud Console blocks both disabling and deleting a cluster feature while active resources are still attached to it. Remove or migrate the dependent resources first, then retry the disable or delete action.
</Note>

The following features are available for configuration:

1. [Pulsar Functions](#pulsar-functions)
2. [Pulsar Transactions](#pulsar-transactions)
3. [Audit Log](#audit-log)
4. [Auto Scaling](#auto-scaling)

## Pulsar Functions

[Pulsar Functions](/cloud/process/pulsar-functions/functions-overview) allow you to process messages as they move between topics and external systems. This feature can be enabled or disabled for your cluster.

To enable Pulsar Functions for your cluster, you can set the `config.functionEnabled` field in your PulsarCluster specification to `true` if you are using `snctl` or `config.function_enabled` field in your PulsarCluster specification to `true` if you are using Terraform.

Please note that if you disable Pulsar Functions, you will not able to create new functions in the cluster. Existing functions will continue to run and process messages until they are deleted, but they are not be managed or monitored anymore.

## Pulsar Transactions

[Pulsar Transactions](/cloud/build/pulsar-clients/transactions-overview) provide atomic operations across multiple topics and partitions. This feature can be enabled or disabled for your cluster.

To enable Pulsar Transactions for your cluster, you can set the `config.transactionEnabled` field in your PulsarCluster specification to `true` if you are using `snctl` or `config.transaction_enabled` field in your PulsarCluster specification to `true` if you are using Terraform.

Please note that if you disable Pulsar Transactions on your cluster where you have enabled it before, you are not recommended to disable it because you will disrupt the existing applications that are using transactions and corrupt the data.

## Audit Log

[Audit logging](/cloud/security/monitor-activity/cloud-audit-log) helps track and record important events and actions within your Pulsar cluster. You can configure audit log settings for enhanced monitoring and compliance.

To configure audit logging for your cluster, you can use the `config.auditLog` field in your PulsarCluster specification. The audit log configuration allows you to specify which categories of events you want to log.

Here's how you can configure audit logging:

1. Using `snctl`:

   ```yaml theme={null}
   apiVersion: cloud.streamnative.io/v1alpha1
   kind: PulsarCluster
   metadata:
     name: my-cluster
   spec:
     config:
       auditLog:
         categories:
           - 'Management'
           - 'Describe'
           - 'Produce'
           - 'Consume'
   ```

2. Using Terraform:

   ```hcl theme={null}
   resource "streamnative_cluster" "my_cluster" {
     # ... other configuration ...

     config {
       audit_log {
         categories = [
           "Management",
           "Describe",
           "Produce",
           "Consume"
         ]
       }
     }
   }
   ```

The `categories` field is a list of strings that specify which types of events you want to include in the audit log. See the [Audit Log Overview](/cloud/security/monitor-activity/cloud-audit-log) for more details on the available categories.

You can add or remove categories based on your specific auditing needs. The exact list of available categories may depend on your StreamNative Cloud version, so consult the [documentation](/cloud/security/monitor-activity/cloud-audit-log) for a complete list of supported categories.

Note that enabling extensive audit logging may have performance implications and increase storage requirements. It's recommended to carefully consider which categories are necessary for your use case and compliance requirements.

To disable audit logging, you can remove the `config.auditLog` field in your PulsarCluster specification.

## Auto Scaling

Auto-scaling is a cluster-level feature that allows you to dynamically adjust the number of Broker nodes. You can refer [Configure Auto-Scaling](/cloud/clusters/scale-clusters/cloud-autoscaling) for more details.
