Update: KSQL is now available as a component of the Confluent Platform.
Today we are releasing the first update to KSQL since its launch as a Developer Preview at Kafka Summit San Francisco in August. Since then we have seen an amazing amount of interest and great feedback from the community. We have gained a lot of insight and see a bright future ahead for KSQL. From this month onwards, we will be releasing KSQL on a monthly basis, and we will also kick-off a KSQL beta program.
KSQL is the streaming SQL engine for Apache Kafka. It provides an easy and completely interactive SQL interface for stream processing on Kafka—no need to write any code in a programming language such as Java or Python. KSQL supports a wide range of powerful stream processing operations including filtering, transformations, aggregations, joins, windowing, sessionization, and much more. KSQL is open source (Apache 2.0 licensed), distributed, scalable, fault-tolerant, and real-time.
This update has been focused on addressing many community-raised issues and requests for the Developer Preview. It includes a total of 369 pull requests, 50 closed issues, and participation from more than a thousand members of the Confluent Slack community. Many thanks to all of you for your great feedback and contributions thus far!
In the past two months we have spoken with dozens of companies about how KSQL enables them to solve their real-time use cases. Already we’ve seen such diverse use cases powered by KSQL such as monitoring of application behavior and business events, real-time ETL, data exploration, testing and validating machine learning, driving automated ad-tech auctioning, and more.
And we have learned that people can be very creative (and have a lot of fun) with KSQL and Kafka. Perhaps the most entertaining use case has been shared by Rittman Mead, where KSQL is used to visualize real-time device data. Racing and Kafka are definitely an exciting combination!
If you are interested in further reads, you might be interested in how KSQL fits synergistically with microservice-oriented stream processing strategies that have thus far been the exclusive province of Kafka’s Streams API, or how KSQL makes real-time analytics problems much easier.
KSQL is a community-driven effort to make the world of Kafka and stream processing accessible to a broader audience. KSQL is an open source project (Apache 2.0 licensed), and all development including design discussions, issue tracking, etc. is managed in the KSQL project repository on GitHub.
The easiest way to get involved is by sharing your feedback via the KSQL issue tracker. If you want to take it to the next step you can also contribute code and pull requests to make KSQL even better. And, at any time, if you have questions or need a helping hand, you can team up with fellow KSQL users and developers in the #ksql channel in our public Confluent Slack community.
While KSQL is still considered a developer preview, we will be releasing KSQL on a monthly basis from now on. This will make it even easier for you to get up and running with the latest-and-greatest functionality of KSQL to solve your own business problems.
Also, we have begun working hand-in-hand with closed beta customers on implementing very cool use cases with KSQL. And if you, too, are interested in joining the KSQL beta, please reach out to us!
If you have enjoyed this article, you might want to continue with the following resources to learn more about KSQL:
Versioned key-value state stores, introduced to Kafka Streams in 3.5, enhance stateful processing capabilities by allowing users to store multiple record versions per key, rather than only the single latest version per key as is the case for existing key-value stores today...
This blog post discusses the two generals problems, how it impacts message delivery guarantees, and how those guarantees would affect a futuristic technology such as teleportation.