Skip to content


# Apache Kafka®

Apache Kafka® is an open-source stream-processing software platform developed by LinkedIn and donated to the Apache Software Foundation, written in Scala and Java.

CAP has supported Kafka® as message transporter.

## Configuration

To use Kafka transporter, you need to install the following extensions from NuGet:

    PM> Install-Package DotNetCore.CAP.Kafka

Then you can add memory-based configuration items to the `ConfigureServices` method of `Startup.cs`.

    public void ConfigureServices(IServiceCollection services)
    {
        // ...

        services.AddCap(x =>
        {
            x.UseKafka(opt=>{
                //KafkaOptions
            });
            // x.UseXXX ...
        });
    }

#### Kafka Options

The Kafka configuration parameters provided directly by the CAP are as follows:

NAME | DESCRIPTION | TYPE | DEFAULT
--- | --- | --- | ---
Servers | Broker server address | string |
ConnectionPoolSize | connection pool size | int | 10

#### Kafka MainConfig Options

If you need more native Kakfa related configuration items, you can set it with the `MainConfig` configuration option:

    services.AddCap(capOptions =>
    {
        capOptions.UseKafka(kafkaOption=>
        {
            // kafka options.
            // kafkaOptions.MainConfig.Add("", "");
        });
    });

`MainConfig` is a configuration dictionary, you can find a list of supported configuration items through the following link.

https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md