Announcing Nakama release 2.6.0

Today, July 2nd 2019, we want to share exciting news of what our latest release, Nakama 2.6.0, brings you.

Take a look at the release notes for full details but let’s focus on four changes in particular:

  • Cache control headers are set in all API responses
  • we’ve added support for CockroachDB 19.1
  • there’s a new ‘startActive’ timestamp for tournaments
  • it’s now easier to get a historic view of a player’s previous tournaments and leaderboards.

Let’s dive in.

Cache control headers in all API responses

You can now cache all API responses from Nakama.

Usually, only POST requests should not be cached. However, Nakama 2.6.0 sets cache-control headers on all API responses so that content should never be cached by the client.

We’ve made this change because some HTTP clients cache result internally (e.g. iOS WebView) and this could result in out of date information. With this change, clients should always get the most up to date information from the server and not cache results internally.

Nakama now supports CockroachDB 19.1.

If you run Nakama with CockroachDB, you can now use their version 19.1 release.

CockroachDB 19.1 brings with it improvements in security, performance, and usability. You can see more in their release announcement.

This means that Nakama 2.6.0 now supports CockroachDB’s transparent data encryption at rest. In other words, when configured to do so CockroachDB will automatically encrypt your data when it stores it.

This release of CockroachDB offers data locality, meaning that where workloads are geo-distributed Nakama can write to and read from the CockroachDB instances that are closest.

Lastly, this release of CockroachDB integrates with LDAP directory services, making it easier to align with corporate auth policies.

Better visibility of tournament start times

Tournaments have a new start active marker. It works like this:

  • if the tournament is active, the marker shows when the tournament started
  • if the tournament is inactive, the marker shows when the next tournament will begin.

You might have been wondering why there wasn’t already a startActive equivalent to the existing endActive marker. Well, it’s actually surprisingly tricky number to calculate.

startActive is super useful to let players know when to come back for the next active tournament. You could also use to it sort active tournaments by age.

Now, imagine a UI view that shows the tournaments your logged-in player can join and submit scores to.

It’s important to note that startActive denotes the start time of the current tournament session and is not the same as Tournament’s initiation time.

Leaderboard and tournament records now have an overridable expiry time

When you request leaderboard and tournament records, you most likely want only those that are currently active.

The new default behaviour in 2.6.0 is to give you only active leaderboards and tournaments, unless you explicitly request expired entries too.

This means you get the live data without having to filter expired tournaments and leaderboards but if you want to provide a historic player view, for example, then you can do easily.

Other fixes in 2.6.0

  • Fix delayed first time invocation of tournament and leaderboard callbacks.
  • Expired tournaments will no longer be listed nor any records will be returned.
  • Unlink device identifiers on console user account details page.
  • Add missing index drop on migrate down.
  • Handle query and parameter resets on wallet update retries.
  • Reset list of friend IDs in Facebook import when retrying the operation.

As always, you can see the full release notes on GitHub.