There is a distributed streaming SQL engine for Apache Kafka called KSQL published at Kafka Summit held in August 2017.

KSQL introduction article is the following


I developed a Web UI for KSQL named Tsūjun.

by the way, origin of the name is a bridge called Tsūjun Bridge in Kumamoto Prefecture, Japan.

Source code

Motivation

Currentry, There are some streaming processing frameworks or libraries, I have experience using Norikra and Flink.
Flink can handle a lot of data with distributed processing and has excellent fault tolerance feature.
However, I always thought that I want to implement the streaming process easily in Flink.
For example, Norikra can register SQL with Web UI.

KSQL is still developer preview, but I’m interested in it.
However there is no good Web UI*, so it was a good opportunity of development to try making it myself.

*I didn’t notice when I started developing Tsūjun, but Web UI is included in the source repo. However, It seems that there is no description in the document.

Software stack

UI

  • TypeScript
  • Vue.js
  • Fetch API *Used to process streaming response from Tsūjun server

Serverside

  • Kotlin
  • Spring Boot
  • WebFlux

By the way, as far as I know, the types of applications that WebFlux fit are as follows.

  • Gateway
  • Streaming scenario
  • High traffic

Tsūjun is located between browser and KSQL server as gateway. and relays streaming data.
so WebFlux seems very fit for Tsūjun.

Conclusion

Although it supports only a part of KSQL syntax yet, I will continue to develop it in the future so please try using KSQL.