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