Example of containerized XTDB nodes with Kafka transaction and document store

Hi,

I am looking for an example of XTDB docker container config with Kafka as transaction and document store. Can anyone point me to a github repository or other example?

Thank you for the help!

Hey @Niko - have you seen the Docker ‘build’ instructions here? You can see how we use the Docker build with a custom edn config:

An example edn config with Kafka for the tx-log and document-store is here:

Thank you! This is what I was looking for

1 Like

@refset what would you recommend as a production architecture when running xtdb as a separate service?

@niko There’s quite a few dimensions to consider before I can give an easy answer - which application language/runtime are you using? Are you exposing your own APIs or hoping to purely use XT’s HTTP module? Do you already use k8s or other container deployment platform? Which cloud?

Hi @refset,
Thank you for getting back to me. I am using AWS and have an AWS MSK kafka cluster running. My services are deployed in an ECS Fargate cluster. Ideally I would like to run the XTDB nodes as a separate scalable ecs fargate task inside my fargate cluster. My other services would communicate with the XTDB nodes over http and the nodes would use kafka for document and transaction storage. If possible I would like to be able to back data up in Postgres or other database where I can restore to kafka if something happens.

Hey again, thanks for the details - that definitely helps - it all sounds broadly sensible. We have found some aspects of Fargate make working with large local disks a bit tricky, but if you’re not updating the XT nodes too often then the impact is limited (vs. if you were couple your application to XT in the same process).

If possible I would like to be able to back data up in Postgres or other database where I can restore to kafka if something happens.

There is no mechanism for this currently, instead we would encourage you to embrace the backup and durability guarantees offered by MSK itself - although if you have particular concerns on that front I would be very keen to discuss & iron them out.

don’t know if you already solved it, but i have some example docker/composes in here:

the biggest gotcha is, in order to have multiple xtdb clones over same goldenstore, their :group-id in :kafka-config in xtdb.edn has to be unique for each one

have fun

1 Like

Thank you @svil ! This is helpful

1 Like