Apr
11
2020

How to use AxonIQ Cloud Console

When you don’t want the hassle of maintaining Axon Server yourself or just want to test your newly developed application quickly, you can use AxonIQ Cloud Console instead.

For starters, you should create an account on https://console.cloud.axoniq.io and authorize yourself by using your Google or Github accounts. After that, you can create an account by adding your personal details and agreeing to the terms and conditions. Finally, when clicking the continue button, you will be redirected to your Dashboard.

Here you can start creating a Space (a workspace) that allows you to share your context setup with your co-workers; but, you can also keep it private, of course. A Context in the AxonIQ Cloud Console can be regarded as the bounded context notion in Domain-Driven Design, and it reflects the multi-context support in AxonServer. It means that applications bounded to this context don't leak any information to the outside world (other than (the desired) milestone events, for example).

After having authorized, created a space, and defined a context, you can connect an application. To achieve this, you need to use application bindings to connect your Axon application to a particular context in AxonIQ Cloud.

 

How to connect an application

In this example, we will set up the “Hotel Demo” application to connect with AxonIQ Cloud. The application can be found here: https://github.com/AxonIQ/hotel-demo 

Firstly, we use the drop-down menu to add a new space for our Hotel company.

Screenshoot of the header of Axon Cloud Console showing the "Please select a space" dropdown list deployed with the option "Add a new Space"
 

After creating the hotel demo space, we can add the booking context for the application to connect with. When you create a context, you’ll be asked to enter the type. This type represents the availability characteristics of your context. So, after we created a context, the context dashboard should look as follows:

A screenshot of the AxonIQ Cloud console, with the option "Contexts" selected in the left menu, showing the list with the defined contexts: in this case a booking context with contextID booking@hotel-demo, a green tick to show that the context is enabled, Context type as Beta Standalone, and a trash icon on the Actions column to allow the removal of the context.
 

Now that we have defined the context, we can connect our application to it. To do this, we need to create an application binding, which will bind the Hotel Gift Card Management application to the context we have just built in AxonIQ Cloud through means of a token. 

Let us create an application binding with the name hotel-demo, which provides us with the application token, like so:

A screenshot showing the final dialog of the process to create a new Application. The dialog shows a field with the Application Token generated and a message specifying that the application token will only be shown in this dialog, advising the user to save the token before closing the window. A second field is also swhon, a textarea with the application configuration properties needed to connect your application to this context. Both fields have an icon to automatically copy their contents to the clipboard.

 

When connecting your application for the first time, you would need to copy the entire configuration to your application.properties file. Then, for future instances of connecting your application, you would only need to update the token in your application.properties file. Doing so will allow the application to connect with AxonIQ Cloud safely.

After closing the application-token pop-up, the application binding dashboard should look like this:

A screenshot of AxonIQ Cloud console, with the option "Application Bindings" selected from the left menu, and showing the table of all application bindings defined on the right area. The Application Bindings table shows a table with one element: "Application Binding Name: hotel-demo, Number of contexts: 1) and under the "actions column" there are two icons, one gray pencil that allows the user to edit the binding and a red trash icon to delete the application binding. The Application Bindings table also shows a blue + icon to add new application bindings.
 

The next step is actually to connect the Booking application by simply running it. After the application has started, it should appear in the dashboard:

A screen shot of the AxonIQ Cloud console showing the dashboard (selected in the left menu) and the Connected applications shown in the right part of the screen. A card is shown with the details of an application: axoniq-hotel-booking.

This means that the Hotel Gift Card Management application is connected to AxonIQ Cloud. This application has one event processor, can handle eight different commands, and respond to nine distinct queries. For more detailed application information, you can click on the application tile.

 

Observability

Because AxonServer is abstracted away, you can search and inspect events in the event store menu:

A screenshot of the AxonIQ Cloud console with the "Event Store" option selected on the left menu, showing a list with several Events that are stored in the booking context. The table of events have the following columns: token, event Identifier, aggregate Identifier, aggregrate Sequence Number Aggregate Type, payload type, payload Revision, payload Data, timestamp and metaData. The table has a tool on top to filter the events by Context, a search field to add a query expression to filter the events and a dropdown with the number of columns.
 

Furthermore, you can get more information about metrics of your contexts in the Statistics menu:

A screenshot of AxonIQ Cloud Console with the Statistics menu selected on the left. The "Context Usage Statistics" shown on the right is a table that includes, for every context, the following information: Context ID, Number of events stored, Event storage in bytes, Number of commands executed, Executed commands size in bytes, Number of queries executed and Executed queries size in bytes. The table has on the header a dropdown to select the time frame for the statistics shown (1 hour is selected in the screenshot)
 

Space management

When you create a Space, you are the owner, and you see a Space Management menu. In the Members section, you can delete members. You can also transfer the ownership of the entire space to another member.

A Screenshot of AxonIQ Cloud console showing the "Space Management" selected in the left menu. The Space Management shows a table with two tabs: Members and invites. In the screenshot, the tab "Members" is selected, and a table with the members configured is shown. For Each Member the table includes the following information: First Name, Last Name and Email. Also a fourth column with available actions for each member is shown.
 

In the Invites section, the owner can share the Space with others that work on the same project by inviting them. He can generate a link in the Invite tab of Space Management by clicking the plus button. This link can be shared with a coworker or deactivated by clicking the disable button. 

A Screenshot of the Space management page of AxonIQ Cloud Console. In this screenshot, the tab Invites is selected, showing a table with all the invites sent. For each invite the table shows the Invite URL and the Status (ACTIVE/INACTIVE). A third column is shown with icons for the options available for each Invite.
 


Written by:
Yvonne's profile photo

Yvonne Ceelie

A backend developer with more than 2 decades of experience and passionate about Java and the Spring Framework. Since 2017 my main focus is helping customers of AxonIQ to use and implement the Axon Framework as a consultant. I like to solve complex puzzles as easy as possible.