A distributed, transactional,
fault-tolerant object store

Server: Installing, configuring and running

Clients and data modelling

  • Data Modelling in GoshawkDB

    Understanding the object model presented by GoshawkDB and how to use it to model data.

  • Data Security

    How to restrict access to objects within GoshawkDB.

  • Semantics

    How GoshawkDB behaves, what guarantees it makes. Most of these semantics relate to transactions as submitted by clients.

  • Java Client

    Guide to the Java client.

  • Go Client

    Guide to the Go client.

  • Collections Library

    There is a collections library available for each supported GoshawkDB client. This guide explains how to use them.


These all contain code samples using the Go client. However, the Go client and Java client APIs are very similar so these should be of use to Java programmers too.

  • Building a Bank

    With its strong guarantees and reliability, GoshawkDB is well suited for building a bank.

  • Queue

    One of the most powerful features of GoshawkDB is its support for retry. In this howto, I show one way of using it to create queues in GoshawkDB.

  • Battleships!

    The classic game, but in GoshawkDB!

Talks and Videos

  • CodeMesh - November 2016. Video; Slides

    This is an introductory talk looking at how GoshawkDB relates to other popular database products, the design of GoshawkDB and the data model it presents. It also covers some of the higher level implementation details and algorithms.

  • QCon London - March 2016. Video; Slides

    This talk covers much of the foundational distributed systems theory behind GoshawkDB and looks in depth at the key algorithms used to establish consensus on transaction outcome and consensus of transaction ordering.


  • Benchmarking

    Some notes on benchmarking GoshawkDB.

  • Rationale

    A wider look at the rationale behind GoshawkDB.