Skip to content
Tomas Fabian edited this page Jun 18, 2023 · 10 revisions

Welcome to the ksqlDB.RestApi.Client wiki!

The ksqlDB.RestApi.Client library is a software component that provides a client-side interface for interacting with a ksqlDB server via its REST API. It is designed to simplify the process of integrating and communicating with a ksqlDB server in .NET applications or services.

The library abstracts the details of HTTP requests and responses, allowing developers to focus on sending queries, executing statements, and receiving results from the ksqlDB server using a more intuitive and high-level API.

Some key features and functionalities of the ksqlDB.RestApi.Client library includes:

  • Query Execution: It allows you to send KSQL queries to the ksqlDB server for processing. This includes executing pull queries to retrieve data or push queries to continuously consume and process streaming data.

  • Statement Execution: You can execute various types of KSQL statements, such as creating streams and tables, applying transformations, aggregating data, and more.

  • Result Handling: The library provides mechanisms to handle the results returned by the ksqlDB server, including parsing the response data into convenient data structures for further processing and analysis.

  • Error Handling: It supports handling and parsing errors returned by the ksqlDB server, allowing for graceful error handling and appropriate error reporting in the client application.

  • Configuration: The library allows you to configure and customize the connection settings, authentication mechanisms, and other parameters required to establish communication with the ksqlDB server.

By utilizing the ksqlDB.RestApi.Client library, developers can streamline the integration of ksqlDB into their .NET applications, abstract away the complexities of the REST API communication, and focus on leveraging the power of ksqlDB for real-time data processing and analysis.

In ksqlDB, there are several abstraction layers that provide a higher-level interface for working with stream processing and Apache Kafka. These abstraction layers help simplify the development of real-time streaming applications:

REST API abstracts away the underlying complexities of the ksqlDB server internals and provides a standardized HTTP-based interface that allows clients to interact with ksqlDB using common web protocols. It serves as a higher-level abstraction that simplifies the interaction with ksqlDB, making it accessible to a wide range of programming languages and frameworks.

ksqlDB Queries: ksqlDBintroduces a SQL-like query language that allows you to define stream processing pipelines and transformations. It provides a declarative way to express operations on streams and tables, including filtering, aggregating, joining, and transforming data. The ksqlDBquery engine internally translates these high-level queries into Kafka Streams applications, abstracting away the complexities of managing the underlying Kafka Streams topology.

Kafka Streams: Kafka Streams is a powerful stream processing library built on top of Apache Kafka. It provides a high-level, functional programming model that allows developers to process and analyze data in real-time. Kafka Streams is integrated with ksqlDB, enabling advanced stream processing capabilities such as windowed aggregations, joins, and event-time processing. It provides an abstraction over the low-level Kafka Producer and Consumer APIs, making it easier to write and manage stream processing applications.