Skip to content

Instantly share code, notes, and snippets.

@marzdrel
Created May 27, 2022 14:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marzdrel/0d1224f6bb1bd05178347e6e4b3537dd to your computer and use it in GitHub Desktop.
Save marzdrel/0d1224f6bb1bd05178347e6e4b3537dd to your computer and use it in GitHub Desktop.
(ns xtdbkafka
(:require [clojure.java.io :as io]
[xtdb.api :as xt]))
(defn ^xtdb.api.IXtdb start-node []
(xt/start-node
{
:local-rocksdb {:xtdb/module 'xtdb.rocksdb/->kv-store :db-dir (io/file "data/dev/index-store")}
:xtdb.kafka/kafka-config {:bootstrap-servers "localhost:9092"}
:xtdb/tx-log {:xtdb/module 'xtdb.kafka/->tx-log
:kafka-config :xtdb.kafka/kafka-config
:tx-topic-opts {:topic-name "tx-1" :replication-factor 1}}
:xtdb/document-store {:xtdb/module 'xtdb.kafka/->document-store
:kafka-config :xtdb.kafka/kafka-config
:doc-topic-opts {:topic-name "doc-1" :replication-factor 1}}
:xtdb/index-store {:kv-store :local-rocksdb}
:xtdb.http-server/server {:port 3000} }))
(defn -main [& args]
(with-open [xtdb-node (start-node)]
(xt/sync xtdb-node)
(println (xt/entity (xt/db xtdb-node) 1))))
(comment
"
% clj -X xtdbkafka/-main
{:pilot-name Johanna, :id/rocket SB002-sol, :id/employee 22910x2, :badges SETUP, :cargo [stereo gold fish slippers secret note], :xt/id 1}
% clj -X xtdbkafka/-main
nil
% clj -X xtdbkafka/-main
nil
% rm -rf data
% clj -X xtdbkafka/-main
{:pilot-name Johanna, :id/rocket SB002-sol, :id/employee 22910x2, :badges SETUP, :cargo [stereo gold fish slippers secret note], :xt/id 1}
% clj -X xtdbkafka/-main
nil
")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment