Why AxonIQ Cloud?
Axon Server - part of the Axon Platform is our zero-configuration, purpose-built Event Store and Message Bus. AxonIQ Cloud delivers Axon Server as a hosted service and abstracts away set up, tuning, patching, and managing high-performance Axon Server Clusters. AxonIQ Cloud enables Developers/Infrastructure Teams to run Axon Server in multiple environments without the hassle and overhead of managing the underlying infrastructure, licenses, and SLAs.
AxonIQ Cloud comes in 3 flavors based on specific requirements around storage/compute/pricing and performance.
A quick summary is depicted below for easy reference.
|Type||Infrastructure - Storage||Infrastructure - Compute||Usage Costs||Benefits||Drawbacks|
|Shared Clusters||Shared||Shared||Based on Context Types and number of messages being routed||Lower Costs||Performance could be affected by noisy neighbors|
Dedicated and available with two options.
|Monthly base cost and the number of messages being routed||
|Custom Clusters||Dedicated||Dedicated - Custom Clusters||Custom Pricing||
All our clusters are currently deployed on GCP (Google Cloud Platform). We are hard at work to expand our offerings to AWS and Microsoft Azure.
How did we build AxonIQ Cloud?
The primary purpose of AxonIQ Cloud as stated before is to offer a highly resilient, fault-tolerant, performant version of Axon Server as a SaaS offering. To cater to these requirements, it is written as a distributed system using various modules that can be deployed and developed individually. Our services are written using Java/Kotlin using our own Axon Framework. A key aspect of AxonIQ Cloud is an enhanced user experience using our AxonIQ Cloud Console. The console (written using Vue.JS and typescript) supports multiple authentication schemes and is designed to enable users to rapidly install/administer and govern AxonIQ Cloud clusters. And for all of you CLI lovers, we have AxonIQ CLI written in Go.
We have a separate application for our billing, which provides an additional security layer between the payment provider. Lastly (for now), we created an application for provisioning new clusters and taking care of existing ones, which delegates all actions to the selected provider. In addition to these applications, we have a gRPC-proxy responsible for taking care of the customer application requests, adding even more security to the project.
Since we have several applications and modules running, good monitoring and alert are needed. For that, we use a battle-tested stack of Prometheus, Grafana, and Alert Manager, which are integrated with our Slack and Email for fast response time.
All of our modules are deployed through Kubernetes and we are adopting infra as code making use of Terraform. We also have every kind of CI/CD in place so we can easily release features and enhancements into production with a push of a button.
In conclusion, AxonIQ Cloud enables teams to focus on the fun and strategic part of building business applications and leave the managing hosting, availability, cluster management, and security patching to us.