The immudb Coding Challenge – Winter 2020 Edition

More info at immuchallenge repository.

To all Gophers and data modeling wizards out there: do we have a challenge for you!!
Today we announce our first #immuchallenge coding competition – Winter 2020 Edition.

The challenge: Design and implement a document-like data model on immudb

Our Open Source immudb immutable datastore builds on the traditional key-value data model guaranteeing immutability in a quite unique manner. This simple yet generic data model provides the basis for the design of more complex and challenging immutable data models – like document-like data models.


A document data model is composed of identifiable elements which have properties and may be related to other elements in many different ways. For more information about document data models, we’ve listed some helpful resources.

We expect a minimal functional implementation written in Go (including unit testing) – either fully integrated into immudb or as a standalone component. The new immutable document data model needs to be built on top of the immudb immutable key-value model in order to leverage immutability properties.

Below are the commands for getting the immudb Docker image using a Linux shell. You’ll find more details about how to download and get started with immudb in our developer jumpstart.

  1. Pull immudb Docker Image from Docker Hub:
docker pull Codenotary/immudb:latest
  1. Run immudb in a container:
docker run -it -d -p 3322:3322 -p 9497:9497 --name immudb Codenotary/immudb:latest

In developing your solution, you’ll have to make decisions that are related to:

  1. API which stores and retrieves documents and provide proof of no tampering
  2. Data format which defines how objects are exchanged between final application and storage
  3. Atomicity at the level of document property, single, or multiple document
  4. Concurrency to allow concurrent read and update operations
  5. Granularity of evidence to prove whether a whole document or only the document property is unchanged and untampered

Please submit your solution via email to before December 20th, 2020, 0:00AM CST. All code submitted at a later time, will not be included in our decision process.

Competition Price Assignment Panel

Our panel is comprised of Jerónimo Irázabal, immudb maintainer and project manager, Dennis Zimmer, CTO of vChain, and Michele Meloni, immudb core developer.

The two winners of the competition will be announced on this page on December 22nd, 2020. We will select the best data models based on design decisions, implementation and performance as well as overall code quality.

Feel free to also share your approach, testing, and/or anything interesting you have learned in the #immuchallenge channel in slack.


  • 1st place – $750 ( Gift Card)
  • 2nd place – $350 ( Gift Card)

Questions & Clarifications

For further questions and modifications, contact

More Resources

immudb repository

immudb website

immudb documentation

immudb SDKs:

  1. Java: immudb4j
  2. Golang: immudb-go
  3. .NET: immudb4dotnet
  4. Python: immudb-py
  5. Node.js: immudb-node

Document data model references:


Privacy Statement


Save energy without reducing VM performance in your VMware vSphere cluster
16 August 2022
Over the last couple of decades energy consumption went up massively in every data center and while the…
Metrics & Logs support for IoT - Bringing Secure Monitoring and Logging to the Edge
7 July 2022
Simple uptime monitoring for Internet-of-Things (IoT) is well-known and requires knowing if the devices are up and running.…
Monitoring Azure SQL Managed Instance with Opvizor Metrics & Logs
17 January 2022
When you have critical applications and business processes that rely on Azure resources, it's critical to keep an…

White Paper — Registration

You will receive the research paper by mail.

Codenotary — Webinar

White Paper — Registration

Please let us know where we can send the whitepaper on Codenotary Trusted Software Supply Chain. 

Become a partner

Start Your Trial

Please enter contact information to receive an email with the virtual appliance download instructions.

Start Free Trial

Please enter contact information to receive an email with the free trial details.

Subscribe to our newsletter