2

With refernce to Kafka, what is the difference between all these?

Lets say I have a component "Order" which must emit events into a kafka-channel when I create/cancel/modify orders.

And I create a channel. As "Order-out". Is topic the name I can use for this channel? What is topic vs channel?

And this is the Order-Details component. Which creates & maintains records of all such orders. I want to use an orderEvents class inside subscriber section of this component.

public class OrderEvents {
  public static final String ORDER_CREATED = "ORDER_CREATED";
  public static final String ORDER_MODIFIED = "ORDER_MODIFIED";
  public static final String ORDER_CANCELLED = "ORDER_CANCELLED";
}
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245
MouseNag
  • 303
  • 1
  • 9

1 Answers1

3

An event is a single record. In Spring, you might work with a Message class to wrap an event.

Channel is a Spring Integration term used via Spring-Kafka or Spring Cloud Stream Binders for inputs and outputs. A Binder determines the implementation of the Channel.

Topic is a Kafka unit of organization.


An event will be serialized into bytes, and sent via a channel to a Kafka topic.

A Kafka record will be consumed from a Kafka topic, through a channel, and deserialized into an application event class.

OneCricketeer
  • 179,855
  • 19
  • 132
  • 245