Since you are an Axon Framework user, we hope you are satisfied with the performance and scalability improvements that it gives you. We are now about to share a secret with you, and would like you to hear about this great news ahead of the public, because we value your opinion!
Recently we have started on the development of a new product for Axon users: the Axon Event Store Server. It provides a number of exciting features that makes it simpler and faster to use event sourcing. It may appear that it’s just another implementation of the Event Store interface you probably already know, but there is much more to it.
What is the Axon Event Store Server?
The Axon Event Store Server is a standalone product. It is not only used to store the events in a secure way, but it also acts as the Event Bus between components. Components listening to events simply connect to the Event Store server, and they automatically receive all events. Delivery is fast and guaranteed. This will greatly reduce the infrastructural complexity of an Axon based distributed system, while improving performance.
It’s also much faster. Benchmarks indicate that it is over 10 times faster than a MySQL based event store! The reason is simple, the Event Store Server is built from the ground up to work with streams of events. The indexes also work differently, focusing on extremely fast appending as well as efficient sequential reading of events.
We would love to hear from you what you think of this concept! If you want to know more about the standalone Axon Event Store Server, or have some suggestions about the features it should have, please drop me a note to schedule a call.
I think a key feature is multitenancy support.
I imagine something like: hey Axon Event Store I’m tenant X store my events, hey Axon Event Store I’m tenant X give me my events.
I’d like to keep (or choose to let) the tenant outside the domain, the commands, the events, the listeners etc…
I already have a multitenant application where the tenant is hidden behind TransactionManagers/ConnectionProviders/etc implementations, even the application layer doesn’t knows the tenant apart from a little thin layer where the concrete implementations are instantiated.
thanks for the feedback. This feature request has been mentioned before, so it made it to the product backlog.
It’s likely to be implemented using “logical databases”. In your case, you could use a ‘database’ (it will probably be called differently) for each tenant.
I think that also the possibility to go from a “barebone Axon framework application” to a Axon Event Store Server should be thought of from the beginning, so that people that wants to start of with Axon framework only and later realize they need the power of the Axon Event Store Server should be able to upgrade/migrate in an easy way.