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

CNIL Metrics & Logs

Self-Hosted performance monitoring and compliant log analysis for VMware vSphere, container and much more.


Built on the fastest immutable ledger technology. Open Source and easy to use and integrate into existing application.

Codenotary Cloud

Trusted CI/CD, SBOM and artifact
protection with cryptographic proof.
One CLI to manage all.

Subscribe to Our Newsletter

Get the latest product updates, company news, and special offers delivered right to your inbox.
Share on twitter
Share on linkedin
Share on facebook
Share on email

Subscribe to our newsletter

White Paper — Registration

We will send you the research paper via email.

CodeNotary — Webinar

White Paper — Registration

Please let us know who you are, so we can send you the CodeNotary Trusted Software Supply Chain white paper.

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.