## Definitions

The `providerId` argument, including the default value “default”, _must_ correspond to an equivalent property in _events.providers.kafka_ entry of the router config.yml.

Kafka topic arguments support argument templates such as `employeeUpdated.{{ args.employeeID }}`. If you use templates, create the rendered Kafka topics in your broker ahead of time because the Router does not create topics automatically.

### @edfs_kafkaPublish

```
directive @edfs__kafkaPublish(
  topic: String!,
  providerId: String! = "default"
) on FIELD_DEFINITION

type edfs__PublishResult {
    success: Boolean!
}
```

| Argument name | Type     | Value                                                                 |
|---------------|----------|-----------------------------------------------------------------------|
| topic         | String!  | The event topic. Argument templates are supported.                    |
| providerId    | String!  | The provider ID, which identifies the connection in the router config.yaml. <br>If unsupplied, the provider ID “default” will be used. |

### @edfs__kafkaSubscribe

```
directive @edfs__kafkaSubscribe(
  topics: [String!]!,
  providerId: String! = "default"
) on FIELD_DEFINITION
```

| Argument name | Type       | Value                                                                 |
|---------------|------------|-----------------------------------------------------------------------|
| topics        | [String!]! | The event topics (it is possible to subscribe to multiple topics). Argument templates are supported. |
| providerId    | String!    | The provider ID, which identifies the connection in the router config.yaml. <br>If unsupplied, the provider ID “default” will be used. |
