Trifork Blog

Axon Framework, DDD, Microservices

Posts Tagged ‘Axon Framework’

November newsletter

November 14th, 2012 by
(http://blog.trifork.com/2012/11/14/november-newsletter/)

trifork banner

Greetings from Trifork Amsterdam 
It’s all about finding the perfect match in life. Trifork A/S (a leading Danish software company) has found just that in us, here in the Netherlands. As of November 1st we’ve launched as Trifork Amsterdam. Rest-assured, we’ll still focus on the technology as we know it best, the entire team will remain intact and we’ll continue to do more of what we do best but even better ;-). If you want to know more visit our website.

JFall Winners
jfallFor those of you who visited us at JFall this year, you’ll probably have done our “Get to know us” questionnaire. We’re pleased to say that pretty much everyone got top marks (even if you did get a little help from us every now & then!).

jfall image

However the lucky winners of the great prizes are as follows:

  • 1st prize ticket for GOTO Amsterdam, June 2013 goes to Erwin de Gier
  • 2nd prize 2 x tickets for NoSQL roadshow Amsterdam, November 2012 goes to Peter Glas & Michel Schudel
  • 3rd prize: Techy books for 15 runners up (will be contacted individually!).

Congrats to winners and thanks again to all the participants.

Don’t worry though for both NLJUG members and our newsletter readers we also offer great group & sponsorship deals for both events. For more details, contact Daphne Keislair on daphne.keislair@trifork.nl or call +31 6 272 94 119 to discuss the possibilities.

Want to know more on NoSQL?

no sql banner

Just so you know, the amazing early bird rate of 200 EUR for the NoSQL roadshow Amsterdam is still open until 16th November. It’s a unique opportunity to gain insights from some renowned speakers around MongoDBRiakHaadoop & Cassandra,Neo4J and much more. At the end of the session you’ll have no questions around the NoSQL space that’s for sure, so sign up here or contact us for more information. If you can not make it to Amsterdam, a week later the roadshow will be in London too.

Meet us at Devoxx

devoxx logoIf you can’t make it, either sign up for our FREE MongoDB Brown Bag session, or if you’re going toDevoxx visit us at stand number 11 (we’re there with 10Gen).
It’s not all just all about coding: tech meeting December  

Of course we are technology geeks but we also look beyond the code too. This month our two sessions will cover:

  1. Web Application Security, an introduction into how to ensure your web application doesn’t make it to the news (for the wrong reasons!) in 2013, providing you with some basic insights and tips & tools on how to secure your website
  2. Agility Beyond Campfire Romance, an interesting and somewhat contraversial matter when it comes to how best to manage development projects.

Sign up now and join us on 6th December. If you can not make it to the tech meetings we will have the presentations available for download on our website after the sessions.

es logoCommitment to the community
In one of our recent blog posts we already mentioned that both Trifork & GOTO are committed to working closely with the community. This month we will host the Elasticsearch meet up covering the cool use of the product in the new website for the Rijksmuseum, its going to be a great session so sign up now. Also, if you need a location for your meetup (even in one of our other Trifork offices) then we’re happy to help if we can just drop us a note with your request.

Blog blog blogging

We’d published a few blogs recently, including:

Spring Insight plugin for the Axon CQRS framework

Agile Campfire Romance

NoSQL roadshow Amsterdam

Spring Insight plugin for the Axon CQRS framework

November 13th, 2012 by
(http://blog.trifork.com/2012/11/13/axon-insight-plugin/)

Introduction

In a previous blog post we introduced the Spring Insight module that’s part of SpringSource’s tc Server developer edition and gives you, well, insight into what’s taking up the time to process requests in your applications. Insight does this by instrumenting your application at load time using AspectJ: a single call to your application will result in a so-called trace consisting of various operations, and for each of these operations it’s measured how long it takes to execute. An operation can provide additional details: for example, when sending a query to a database using a JDBC Connection the actual SQL statement including prepared statement bindings will be stored in the operation.

Spring Insight is not a profiler: it doesn’t create operations for each and every little thing that happens, but only for ‘significant’ events, like a Spring-MVC controller invocation, the start of a transaction or communication with a database. These events are called ‘operations’. It does allow assigning operations to so-called endpoints. An endpoint could be a controller method, or a method on a class annotated with one of Spring’s stereotype annotations like @Service or @Repository for example. For these endpoints Insight can provide statistics across traces, so that you can measure the health of these endpoints during the lifespan of your application based on configurable thresholds.

Insight’s plugin model

Spring Insight consists of a core plus a set of plugins that are shipped with the tool. These plugins define the actual operations and endpoints that Insight knows about and exposes. One of the nice things about Spring Insight is that the plugins use a public API that’s not restricted to the built-in plugins: you can build your own plugins to teach the tool new tricks.

Although you could do this on a per-application basis to expose metrics relevant to your particular app, you wouldn’t usually write a dedicated plugin for that. Insight already exposes several application-level methods as operations if they’re part of your stereotype-annotated Spring beans, and you can use their set of annotations to expose additional application-specific operations and endpoints easily .

Plugins are much more useful for framework developers: their framework might contain several methods that would be interesting to expose as Insight operations or even endpoints to show users what the framework is doing and how long that takes. Earlier this year, that’s exactly what we did for the Axon CQRS framework that’s being developed within Trifork.

This blog briefly discusses the plugin’s implementation. All source code has been added to the Axon Framework itself and is available on Github.

Update:
After publishing this blog entry, VMware has contacted  us to host the source code for this plugin in their public GitHub repository, so that the plugin can be shipped out-of-the-box with the Spring Insight distribution. That means that the plugin sources are no longer found under the Axon repository. The link above has been updated to reflect this change.

Read the rest of this entry »

Refactoring in an event-sourced world – Upcasting in Axon 2

April 17th, 2012 by
(http://blog.trifork.com/2012/04/17/refactoring-in-an-event-sourced-world-upcasting-in-axon-2/)

This article explains how the concept of upcasting can be applied to an event-sourced model. Focusing on demultiplexing of events, a new feature in Axon 2.
Read the rest of this entry »

Using the spring-data project and the mongodb adapter specifically

March 29th, 2012 by
(http://blog.trifork.com/2012/03/29/using-the-spring-data-project-and-the-mongodb-adapter-specifically/)

In this blog post I want to share some of my experiences with the spring-data project. At Orange11 we have been working on a sample for the Axon Framework. We have created the Axon Trader. For the trader we use the MongoDB based event store. Therefore I also wanted to store the data for the query side in Mongodb. I was looking for the easiest way to store and retrieve documents from a mongodb instance. I decided to pick the spring-data mongodb library and I must admit that I do not regret that choice.

Read the rest of this entry »

Processing 1M tps with Axon Framework and the Disruptor

July 20th, 2011 by
(http://blog.trifork.com/2011/07/20/processing-1m-tps-with-axon-framework-and-the-disruptor/)

LMAX, a trading company in the UK, recently open sourced one of their core components: the Disruptor. This component allows reduces execution overhead by removing the necessity for locks, while still keeping processing order guarantees. A pretty ingenious piece of engineering, if you ask me. I tried to apply the disruptor to the Axon Command Bus, just to see what it potential is. The results are pretty astonishing.

Read the rest of this entry »

The new axon incubator and the google app engine project

July 6th, 2011 by
(http://blog.trifork.com/2011/07/06/the-new-axon-incubator-and-the-google-app-engine-project/)

Some time ago we started adding modules or classes to axon that were not really the core of the system. The most important one of them is a MongoDB based event store. The amount of testing of this module was not as high as the other parts. It has not yet been tested in a production system. Still it was part of the core of Axon. Next to the MongoDB based event store we also developed a Google App Engine based event store. This was not in the core of axon, in fact it was only part of a sample project in Github. A few weeks a go we decided it would be better to add an incubator to axon and put these modules or classes that have not been tested as well as the core of axon in there. THe third module is the experimentation of Allard with a distributed command bus. Feel free to check out the code and use it or comment on it through the mailing list. But be warned that this code is under development and might therefore be less stable than the other parts of axon.

This blog post focusses on the Google App Engine module that can now be found in the incubator. I’ll summarize the required changes to the axon framework so it can be used on google app engine. I did blog about this topic before, so I am not going into details for all the code, but point to the older blogpost where possible and focus on the new stuff.

Read the rest of this entry »

Axon Framework 1.0 released!

April 19th, 2011 by
(http://blog.trifork.com/2011/04/19/axon-framework-1-0-released/)

It has been an exciting year. Little over a year ago, I started developing a framework to make it easier for developers to implement a highly scalable en extensible architecture. The first public Axon release (0.3) came out in April 2010, and was far from feature complete. Now, almost a year later, Axon has proven to be production ready and has been successfully employed in several projects around the world.

Read the rest of this entry »

Axon Framework 1.0, first release candidate available

February 16th, 2011 by
(http://blog.trifork.com/2011/02/16/axon-framework-1-0-first-release-candidate-available/)

The Axon Framework 1.0 release is closing in. After over a year of development, all features planned for the 1.0 version are included. With the latest added features, Axon has become a powerful framework that helps developers implementing applications using on a CQRS based architecture.

Although the 1.0-rc1 version doesn’t add a lot of new features to the previous release (0.7), it does represent a major milestone in Axon’s lifecycle. If Axon continues to prove it works as expected in production environments, the final 1.0 release can be expected before summer. Meanwhile, development will start on the remote messaging components required for scalability in larger systems.

Read the rest of this entry »

Axon Framework 0.7 released

January 5th, 2011 by
(http://blog.trifork.com/2011/01/05/axon-framework-0-7-released/)

Today, I released the 0.7 version of Axon Framework. A lot has happened since 0.6, and that’s why it took a little longer for this version to come out. This new version is a huge step towards the 1.0, of which the first milestone release should be available before March 2011. All basic building blocks that you need to run a CQRS application have been implemented.

0.7 offers a large number of new features, such as support for Sagas, Event versioning, Spring Namespace Configuration, and many others, which I will describe in more detail further on.

Read the rest of this entry »

Deploying a CQRS application based on the Axon framework on Google App Engine

January 4th, 2011 by
(http://blog.trifork.com/2011/01/04/deploying-a-cqrs-application-based-on-the-axon-framework-on-google-app-engine/)

The Axon framework is a CQRS framework created by Allard Buijze. From the beginning I am trying to help him out, mostly by creating samples. This blog post is about a sample I am creating for Google App Engine. Everybody that has been working with Google App Engine (GAE) knows that it enforces some limitations on the jdk. The sample uses spring, spring security, sitemesh, objectify and of course Axon. I’ll discuss everything that was needed to deploy a working axon application.

Read the rest of this entry »