With growing communities and on-line activity, application developers need to cope with problems related to concurrency and scalability. The market moves quickly, and the ability to scale quickly is crucial for a business’ existence. With today’s elastic cloud solutions, companies are able to be flexible in how they scale their hardware, and the Axon Framework hereby makes sure your software solution scales too!
While many applications are built in a traditional style, they still expect the databases to take on the scalability task. Axon Framework addresses these issues right in the core architecture. That’s why, once an application is built, scaling up an Axon based application is merely a matter of configuration. Axon Framework’s software architecture approach doesn’t only address scalability, it addresses five common challenges that applications very often face. Not just as a side effect or add-on, but right from its core.
Axon decouples application components to enable linear dynamic scaling. Logical components are separated within your architecture in a service oriented manner, and coupled using an asynchronous message bus. This enables components to be physically spread amongst different servers and hereby realizing linear scaling.
Applications evolve during their lifetime. By the time a project goes into production, many changes will have been made due to new insights or requirement changes. Axon Framework promotes loose coupling between components by using components in an application. This ensures that changes in one component will not directly affect behavior in another component.
Besides making components much easier to adjust, it also makes adding new components easier. By simply connecting to the message bus, addition of new components doesn’t require existing components to be modified. This is a huge advantage over the more traditional imperative programming approach.
Axon Framework distinguishes between two types of components; query (read) and update (write) components. This means the information structure in these components can be optimized for the purpose at hand. As a result, query components have quick access to data that is already structured for its purpose. This in itself is a performance benefit, but also allows scaling for a specific component type. For many applications, the majority of requests are for query purposes, in other words; reading data. Axon Framework enables to scale just these, and leave components of the other type intact.
Applications that need to process large amounts of requests can benefit from the high-performance component based architecture Axon provides. These components allow for efficient processing of requests, allowing processing of over 1 million messages per second, on commodity hardware.
Application security involves, amongst others features, authentication, authorization and auditing. While the first two are quite common in applications, auditing is often overlooked or found too costly to implement. Axon Framework provides auditing capabilities out of the box. Not only can unauthorized access being prevented, unauthorized use can be tracked down too.
Most applications need to exchange information with other systems to function properly. In the more traditional architectures, this involves writing code in different places to trigger communication with these external systems.
As the Axon Framework works with an asynchronous message bus, you can easily add components which provides integration with 3rd party systems without intruding the original application behavior. This holds for both in- and outbound 3rd party systems. This architecture makes integration with several external systems possible, without increasing complexity.
Axon’s ability to address these common issues in applications makes it useful in various applications and domains. It has been used in complex trading systems in the banking industry, electronic medical records in the healthcare domain as well as in the online gaming industry. While each application has different requirements, they can all be found in the Axon Framework, making it incredibly easy to develop scalable, high performance software applications.