Skip to main content
Version: 0.11.12

The fluvio topic command

The fluvio topic subcommands are used to create and delete topics, as well as to view basic information about existing topics.

fluvio topic create

This command is used to create new Fluvio topics.

Example usage

$ fluvio topic create greeting
topic "greeting" created

Retention

Retention is a policy for how data is cleaned up from a topic.

  • For a time-based policy, use --retention-time
  • For a segment-size based policy, use --segment-size

Check the docs for more info about data retention

Example usage

In this example, the last segment of 500k will be deleted after 30 days.

$ fluvio topic create my-topic --retention-time '30 days' --segment-size 500000
topic "my-topic" created

Compression

This configuration will set compression at a topic level. When set producers are forced to use a compression algorithm that matches with the topic configuration. The SPU will reject any Produce request that does not match with the topic configuration.

If --compression-type any is used, SPU will accept any compression algorithm.

possible values:

  • any(default)
  • none
  • gzip
  • lz4
  • snappy
  • zstd

Example usage

$ fluvio topic create my-topic --compression-type gzip
topic "my-topic" created

In this example, the topic my-topic will be created with compression type gzip.

replication assignment

By default, Fluvio will automatically assign replicas to SPUs. However, you can manually assign replicas to SPUs by using the --replica-assignment flag.

Please refer to following [replica] sections for detail of replica assignment.

Note that in order to replication assignment to work, you need to have at least 2 SPUs in your cluster.

Example usage

In this example, we assign first replica to SPU 0, second replica to SPU 1. First we create replica assignment file replica.json.

[
    {
        "id": 0,
        "replicas": [
            0,
            1
        ]
    }
]

The replicas fields correspond to the SPU ids. You can get SPU ids by running fluvio cluster spu list.

Then we create topic with replica assignment file.

$ fluvio topic create my-topic --replica-assignment replica.json
topic "my-topic" created

Use partition commands to show that topic has been created with replica assignment.


 $ fluvio partition list
  TOPIC  PARTITION  LEADER  REPLICAS  RESOLUTION  SIZE  HW  LEO  LRS  FOLLOWER OFFSETS
  my-topic   0          0       [1]       Online      0 B   0   0    0    0     [ReplicaStatus { spu: 1, hw: -1, leo: -1 }]

fluvio topic list

This command shows you all the existing topics in your cluster, as well as some basic information about them, including how many partitions a topic has and how many times it is replicated.

Example usage

$ fluvio topic list
 NAME      TYPE      PARTITIONS  REPLICAS  IGNORE-RACK  STATUS                   REASON
 greeting  computed      1          1                   resolution::provisioned

fluvio topic describe

This command prints more detailed information about a specific topic.

Example usage

$ fluvio topic describe greeting
 Name                    :  greeting
 Type                    :  computed
 Partition Count         :  1
 Replication Factor      :  1
 Ignore Rack Assignment  :  false
 Status                  :  provisioned
 Reason                  :
 -----------------

fluvio topic delete

This command deletes an existing Fluvio topic and all data associated with it. This data may not be recovered, so use this with care.

Example usage

$ fluvio topic delete greeting
topic "greeting" deleted

fluvio topic add-partition

This command adds a partition to an existing topic. It will return the partition number and the SPU id where the partition is located.

Example usage

$ fluvio topic add-partition greeting
 PARTITION  SPU
 1          5001

You can also specify the number of new partitions to add using the -c or --count flag.

$ fluvio topic add-partition greeting -c 3
 PARTITION  SPU
 2          5002
 3          5003
 4          5001