Posted on by , and | Posted in Developer Blog, synyx Blog | Tagged , , ,


Axon is a lightweight framework that supports the implemenation of CQRS patterns by providing commonly used building blocks. One of those patterns is an event sourced application architecture. Even though Event Sourcing and CQRS are orthogonal concepts they fit together very well and are often used together. Event sourcing in an ES/CQRS architecture means that all changes to the application state are done via domain events and the current state can always be rebuilt from the series of events available in a persistent event store. In addition to the event store there might also be one or more read models, for example to achieve opimtized query performance. No matter if there are read models or not, the event store is considered the single source of truth.

Posted on by | Posted in Developer Blog, synyx Blog | Tagged , , ,

There are a number of reasons to use the Spock testing framework:

First, tests - specifications in Spock speak - written in Spock are well structured, expressive and therefore provide good readability. In addition, Spock has built-in features like data driven testing and interaction based testing (mocking). Data driven testing allows your test code to be reused, i.e. to be applied multiple times with different parameters.

Posted on by | Posted in Developer Blog, synyx Blog | Tagged , , ,

Suppose we voted for Sass as the css preprocessor of our choice for a web application. Knowing that css must be generated from our Sass code everytime a scss file is modified, we want to set up the project in a way that enables fast turnaround cycles during development.

The Requirements are:

  • generated css should be bundled within the WAR when building the webapp for production on the continuous integration server

Posted on by | Posted in Developer Blog, synyx Blog | Tagged , ,

Our team is working on an application for one of our clients, a service provider for container logistics, shipping cargo between seaports, terminals and other loading sites. The business domain also includes the calculation of shipping prices subjected to the agreements met between the shipping company and its customers. We recently implemented the concept of so called offers into the application, whereas each offer contains multiple terminal-specific prices. One or more offers may be assigned to a customer (see diagram below, capturing these domain concepts).

Posted on by | Posted in Developer Blog, synyx Blog | Tagged ,

Producing high quality software in an agile process means that everybody involved in the delivery team (or in other words: the team as a whole) do their best to ensure that each products increment delivered to the customer meets the business values of each story that has been implemented.

Posted on by | Posted in Developer Blog, synyx Blog | Tagged , ,

Die Konstruktion qualitativ hochwertiger Software setzt den Einsatz geeigneter Prozesse und Werkzeuge voraus. Von essentieller Bedeutung hinsichtlich der Qualität des Produkts ist der Build-Prozess: eine definierte Folge von Schritten die erforderlich sind, um aus einer Menge von Sourcecodedateien und sonstiger Ressourcen - sowie unter Berücksichtigung der Abhängigkeiten von Bibliotheken oder zwischen einzelnen Projektteilen - ein funktionierendes Ganzes zu bauen. Vereinfacht gesagt, denn dazu kommt noch die Ausführung einer Vielzahl von Unit- und Integrationstests (sowohl auf den Entwicklermaschinen als auch in Continuous Integration Umgebungen), das Erzeugen von Dokumentation, Releasemanagement, usw.