I am using Axon Server (SE) and Axon framework (SE) to implement Saga Orchestration. As of now the axon server (SE) saves the .event and .snapshots in flat files

I am using Axon Server (SE) and Axon framework (SE) to implement Saga Orchestration. As of now the axon server (SE) saves the .events and .snapshots in flat files. As we want to deploy this Saga implementation using Axon server+Framework in my AWS EKS environment in production, so below are my queries regarding this…

  1. How can we achieve high availability by having multiple instances of axon server (like multiple pods of axon server) and all are accessing same/single flat files(.event and .snapshot files) to ensure consistency of data just in case on axon pod goes down and then other can take over?

  2. How can I make sure that the .events and .snapshots flat files does not lost when axon server pod restarts, as pods are ephemeral and data folder will be lost when pod (of axon) goes down.

  3. Can we save the .events file and .snapshots data in sql server so that the axon server may use this sql server database to read events and snapshots data? Does this is provided internally, like this change (of replacing controlDB with mysql db) is configurable via properties files changes or code changes are also involved?

  4. Also how can I make change sin axon server jar code in case I want to connect to mysql db instead of using the in memory controlDB file for storage?

Hi,
if you need to achieve high availability, backups, zero downtime, and much more, you need to look into Axon Server Enterprise. This product has been built on top of Axon Server (formerly known as Standard Edition) and gives all the features that you requested (and more), lowering the challenge. I suggest you to read this blog post on the topic.

Axon Server can run in k8s as well as in VMs. I suggest starting your pod with a Persistent Volume attached and configuring Axon Server to save data on this specific volume mount. You can find a lot of information on how to do in this GitHub Repository

I think that after reading the articles that I linked, all your questions will be answered.

1 Like

Hi Corrado,
Thanks so much for replying. I appreciate your response.

I have couple of more questions around .events, .snapshots and controldb.

  1. What exactly .events, .snapshots file contains? And can we use the database instead of these flat files in Axon SErver SE version? Also how to achieve that as I see that Axon server SE comes as jar only? Is this can be achieved by making the changes in properties file only which comes in axon server jar zip file?

  2. Controldb is kind of in mmemory database as per my understanding. What information this is persisting? I believe we can replace controldb with postgres, but do we have available code for replavithe it with poatgres db?

Please let me know the answers to my above questions.

pls help for above questions as we are doing one important poc and we are stuck because of the answers to the above questions.

Let me trigger your questions:

.events and .snapshots files contain the events and snapshots produced by your application and stored in AxonServer, separated into folders per replication group. At its core, AxonServer is the implementation of an event store, with the addition of other essential features that help teams tackle the complexity of building software using the distributed architecture approach.

ControlDB is an H2 database used by each instance of AxonServer to store the internal status and cluster status that the instance is into. It cannot be replaced by Postgres. What is the reason behind this question? Why do you need to replace it with an RDBMS?

AxonServer single-node is not meant to be used in high-availability scenarios. For this reason, you need to look into AxonServer deployed with more node nodes, configured as a Cluster (aka Enterprise).

I think there is a bit of confusion about what AxonServer is and what the product is capable of. If you don’t mind, I can help you get in touch with one team member so we can help you nail down all the doubts to make your POC successful. It is crucial in the first step of a project, as you and your team are, to have a clear picture of tools and techniques. We can support your growth and clear out obstacles upfront.

1 Like

Hi Corrado,

Thanks so much for taking out time to help me with my questions.

Yes if you connect me to someone then in one session itself, or I can draft an email too about my doubts about axon server and it’s role/capabilities in executing Saga orchestration. My PoC requirements also I can share with your team member then.

Please let me know how can we connect. Thanks Again!

Hi,
I informed my colleagues. Expect an email from someone from AxonIQ in the next day.

Best.

1 Like

Hi Corrado,

Thanks so much. Looking forward to the email. :slight_smile: