https://github.com/reugn/kafka-aerospike-state-store
Kafka Streams custom persistent StateStore backed by Aerospike
https://github.com/reugn/kafka-aerospike-state-store
aerospike aerospike-db kafka-streams persistent-storage state-store
Last synced: about 1 year ago
JSON representation
Kafka Streams custom persistent StateStore backed by Aerospike
- Host: GitHub
- URL: https://github.com/reugn/kafka-aerospike-state-store
- Owner: reugn
- License: apache-2.0
- Created: 2020-04-23T08:57:29.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-10-11T06:55:14.000Z (almost 5 years ago)
- Last Synced: 2025-04-15T04:38:53.767Z (over 1 year ago)
- Topics: aerospike, aerospike-db, kafka-streams, persistent-storage, state-store
- Language: Java
- Homepage:
- Size: 116 KB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# kafka-aerospike-state-store
[](https://github.com/reugn/kafka-aerospike-state-store/actions/workflows/build.yml)
[Apache Kafka](https://kafka.apache.org/) StateStore is a storage engine for managing state maintained by a stream processor.
This repo implements custom persistent StateStore backed by [Aerospike](https://www.aerospike.com/) Database.
Only the [Processor API](https://kafka.apache.org/20/documentation/streams/developer-guide/processor-api.html#streams-developer-guide-processor-api) supports custom state stores.
## Getting started
### Build from source
```sh
./gradlew clean build
```
### Install as a dependency
Read on [how to install](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry#installing-a-package) the `kafka-aerospike-state-store` package from GitHub Packages.
## Example
```java
Topology topology = new Topology();
topology.addSource("source", INPUT_TOPIC);
topology.addProcessor("processor", new StoreProcessorSupplier(), "source");
topology.addStateStore(new AerospikeStoreBuilder(
new AerospikeParamsSupplier("localhost", 3000, "test", "store"),
storeName), "processor");
topology.addSink("sink", OUTPUT_TOPIC, "processor");
```
## License
Licensed under the Apache 2.0 License.