When operating an Akka cluster the developer must consider how to handle network partitions (Split Brain scenarios) and machine crashes. There are multiple strategies to handle such erratic behavior and, after a deeper explanation of the problem we are facing, I will try to present them along with their pros and cons using the Split Brain Resolver in Akka, which is a part of the Reactive Platform. Read more

Back in the days the business was much simpler and required all-in-one straightforward solutions that usually end up as monoliths. Thanks to that supporting those systems was simpler in the beginning, but over the time you had much more chances to end up with a clumsy, tightly coupled system.

Right now markets are changing rapidly. You either adapt quickly or you go out of business. Software has to comply to this new reality.

Changing way you want to develop your system means you need to change your mindset, learn new stuff and apply best practices. This is the place where dedicated platform might help the newcomers. Read more

We can all agree that it’s useful to be able to express a number. Or a character. It could be argued that most code is built upon some set of primitives. And naturally simple types work well in a limited number of use cases: algorithms, tutorials, small/focused applications etc.

The moment the domain outgrows the natural usage of a given primitive it becomes troublesome to keep in mind what the meaning behind a particular Int is. We all know this, it’s been the driving force behind OOP since day one.

Recently I’ve been working on an application based on play framework 2.4.x and slick 3.0. Unsurprisingly, as the app grew the need to track and control domain specific data became more and more pressing. Read more

Welcome to the last part of dice game post series!

We already have fully working game that we created in 1st and 2nd parts.

Today we’ll see how we can take advantage of the fact that we’re using event sourcing.

We’ll create a separate statistics project that will catch all DiceRolled events and count how many times each number have been rolled. Read more

Welcome to the 2nd part of event-sourced game post series! In case you haven’t yet read previous part, I highly recommend reading it before.

Today we’ll focus on the frontend server part, the one that’ll be responsible for handling user interface interactions as well as backend server communication. Read more

Hi, in this post series we’ll create a really simple (yet complete) event-sourced game. It won’t be anything spectacular thus its rules are as simple as:

  • game creator specifies players taking part
  • each player, one after another, has an opportunity to roll the dice
  • each player’s opportunity to roll is time limited, if player won’t roll within the limit, his opportunity is gone
  • winners are all players who share the highest rolled number

With these simple rules it’s barely playable but who cares, at least it’s event-sourced!

Full source code is available on GitHub.

Let’s go… Read more

Today I’m going to tell you few things about API driven development that I learned while working on my last project, where we relied heavily on the API not only as a way of getting the apps working, but also as a central point of development process.