Whether you use open-source data streaming solutions such as Kafka or Flink. Or managed services such as Confluent who offer managed Kafka solutions the basic methods used by the platforms are the same. Producers are set-up to to enable messages or transactions to be produced and consumers are set up to consume or receive those messages. There can be one or two messages, or thousands or millions of messages. The messages appear immediately or almost immediately after they are sent/broadcast/produced. The newer managed services such as Redpanda (shown in the next graphic), provide helpful graphic user interfaces to enhance the management of Kafka clusters. Whereas Apache Flink and Apache Kafka work from the command line by default. I find that the GUI is more suitable and faster for certain tasks and the command line more suitable and faster for other tasks. I use both for those reasons as opposed to any personal preference.

While the managed cloud based services can be very popular and far easier to use, they understandably have a cost attached to their usage. The command line Apache Kafka software allows you to achieve the same thing but you need to write the code and manage the environment yourself. The benefit of this is that you learn far more and gain a much better understanding of Kafka. Another benefit is that the software is often free. Examples of how to set up Flink, Kafka and how to create a Flink job in Java is shown next.