# AspireKafkaProducerExtensions Methods

- Package: [Aspire.Confluent.Kafka](/reference/api/csharp/aspire.confluent.kafka.md)
- Type: [AspireKafkaProducerExtensions](/reference/api/csharp/aspire.confluent.kafka/aspirekafkaproducerextensions.md)
- Kind: `Methods`
- Members: `12`

Extension methods for connecting to a Kafka broker.

## AddKafkaProducer(IHostApplicationBuilder, string)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs#L27)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)

## AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs#L31)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaProducerSettings>? configureSettings)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureSettings` (`Action<KafkaProducerSettings>`)

## AddKafkaProducer(IHostApplicationBuilder, string, Action<ProducerBuilder<TKey, TValue>>)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string, Action<ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureBuilder` (`Action<ProducerBuilder<TKey, TValue>>`)

## AddKafkaProducer(IHostApplicationBuilder, string, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<IServiceProvider, ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureBuilder` (`Action<IServiceProvider, ProducerBuilder<TKey, TValue>>`)

## AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<ProducerBuilder<TKey, TValue>>)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaProducerSettings>? configureSettings,
        Action<ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `connectionName` (`string`)
- `configureSettings` (`Action<KafkaProducerSettings>`)
- `configureBuilder` (`Action<ProducerBuilder<TKey, TValue>>`)

## AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)

- Name: `AddKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

Registers `Kafka.IProducer`2` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<KafkaProducerSettings>? configureSettings,
        Action<IServiceProvider, ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<KafkaProducerSettings>`)
  An optional method used for customizing the [KafkaProducerSettings](/reference/api/csharp/aspire.confluent.kafka/kafkaproducersettings.md).
- `configureBuilder` (`Action<IServiceProvider, ProducerBuilder<TKey, TValue>>`)
  A method used for customizing the `Kafka.ProducerBuilder`2`.

## Remarks

Reads the configuration from "Aspire:Kafka:Producer" section.

## AddKeyedKafkaProducer(IHostApplicationBuilder, string)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs#L59-L62)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)

## AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs#L67-L70)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaProducerSettings>? configureSettings)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureSettings` (`Action<KafkaProducerSettings>`)

## AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<ProducerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureBuilder` (`Action<ProducerBuilder<TKey, TValue>>`)

## AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<IServiceProvider, ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureBuilder` (`Action<IServiceProvider, ProducerBuilder<TKey, TValue>>`)

## AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<ProducerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaProducerSettings>? configureSettings,
        Action<ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
- `name` (`string`)
- `configureSettings` (`Action<KafkaProducerSettings>`)
- `configureBuilder` (`Action<ProducerBuilder<TKey, TValue>>`)

## AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)

- Name: `AddKeyedKafkaProducer(IHostApplicationBuilder, string, Action<KafkaProducerSettings>, Action<IServiceProvider, ProducerBuilder<TKey, TValue>>)`
- Modifiers: `extension`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/5bd693ae1897dee5e2ce71c2cc08879c1c7eff51/src/Components/Aspire.Confluent.Kafka/AspireKafkaProducerExtensions.cs)

Registers `Kafka.IProducer`2` as a keyed singleton for the given `name` in the services provided by the `builder`.

```csharp
public static class AspireKafkaProducerExtensions
{
    public static void AddKeyedKafkaProducer<TKey, TValue>(
        this IHostApplicationBuilder builder,
        string name,
        Action<KafkaProducerSettings>? configureSettings,
        Action<IServiceProvider, ProducerBuilder<TKey, TValue>>? configureBuilder)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<KafkaProducerSettings>`)
  An optional method used for customizing the [KafkaProducerSettings](/reference/api/csharp/aspire.confluent.kafka/kafkaproducersettings.md).
- `configureBuilder` (`Action<IServiceProvider, ProducerBuilder<TKey, TValue>>`)
  An optional method used for customizing the `Kafka.ProducerBuilder`2`.

## Remarks

Reads the configuration from "Aspire:Kafka:Producer:{name}" section.
