Kafka is an open-source platform that is used for event distribution, logging, and streaming. Distributions from Confluent and other vendors provide a web UI for broker management and client tasks, while those from Apache Kafka provide just command-line tools. Also, for most of the requirements, a simple client that publishes and consumes events or messages from the topic is sufficient. The main objectives of building such a client were:

  • Follow a web development approach
  • Have a simple and elegant UI
  • Build a native desktop app

Kafka client UI

Being a sort of a de facto standard for most web development with a huge selection of frameworks and libraries, node.js was chosen as the platform. The UI framework was Bootstrap with a Material theme. Though some might argue that it is dated and has lesser capabilities, it fit the bill for the requirement in question. ElectronJS was used to provide the native desktop app capabilities. It has a flat learning curve with usually only a main file that it generates with functionality to manage the window being displayed. The Kafka client-specific code can be in separate files and can be included in this file. Using utilities such as electron packager, the executable code for the respective platform can be generated.

#cloud #tutorial #web development #kafka #socket.io #node js development

Building a Simple Kafka Client for the Web and Desktop

dzone.com

Building a Simple Kafka Client for the Web and Desktop

This article is about building a simple Kafka real-time web client using KafkaJS, Socket.io, and ElectronJS. * Follow a web development approach * Have a simple and elegant UI * Build a native desktop app ​ ![Kafka client UI](https://dzone.com/storage/temp/14085398-screenshot.png) ​ Being a sort of a de facto standard for most web development with a huge selection of frameworks and libraries, [node.js ](http://nodejs.org/)was chosen as the platform. The UI framework was [Bootstrap ](https://getbootstrap.com/)with a [Material theme](http://mdbootstrap.github.io/bootstrap-material-design/). Though some might argue that it is dated and has lesser capabilities, it fit the bill for the requirement in question. [ElectronJS ](http://electronjs.org/)was used to provide the native desktop app capabilities. It has a flat learning curve with usually only a main file that it generates with functionality to manage the window being displayed. The Kafka client-specific code can be in separate files and can be included in this file. Using utilities such as [electron packager](https://www.npmjs.com/package/electron-packager), the executable code for the respective platform can be generated. Kafka is an open-source platform that is used for event distribution, logging, and streaming. Distributions from Confluent and other vendors provide a web UI for broker management and client tasks, while those from Apache Kafka provide just command-line tools.

10.25 GEEK