InterSystems Multi-Model

Topic and Rules

Attention! Sign in to vote for the project you like!

Instruction on How to Vote

In this programming contest, develop a multi-model solution using InterSystems IRIS.

InterSystems IRIS is a multi-model DBMS. Yes, we store everything in globals, but we expose several APIs out-of-the-box which provide key-value, SQL, object, and document models of data management. And with IRIS you are able to develop your own model and expose the API which will provide some new data models, e.g. GraphDB, column-store, etc.

For this contest make an application that uses at least 2 different models to manipulate data, e.g. key-value and relational, Object and relational, DocDB and key-value.

The application should work either on InterSystems IRIS Community Edition or on InterSystems IRIS for Health Community Edition or on InterSystems IRIS Advanced Analytics Community Edition.

The application should be Open Source and published on GitHub.

Technology bonuses

If the application satisfies some additional requirements listed below, it gets additional technology votes:

  • InterSystems Globals (key-value)
  • InterSystems SQL
  • InterSystems Objects
  • Your data model
  • ZPM Package deployment
  • Docker container usage

More details on bonuses here.

Helpful resources

On the contest landing page, you will find all the useful resources, incl. resources on models.

Don't forget to highlight in README of your application how it should be used.

How to apply

Log in to Open Exchange, open your application page, make sure that it meets the requirements, and click the "Apply for Contest" button. Your application will be sent for approval and once approved will appear on the Contest page eventually.

Prizes and nominations

Experts Nomination

  • 1st place - $2,000
  • 2nd place - $1,000
  • 3rd place - $500

Community Nomination

  • 1st place - $1,000
  • 2nd place - $500
  • 3rd place - $250

Terms and conditions, rules and judgment criteria

By participating in the contest you agree with the following Terms and Conditions.

Visit the contest landing page to read and discuss the rules, nominations & judgment criteria.

Join InterSystems Discord channel to chat about requirements, technology, voting, etc.

NominationsRegistered applications (10)

A demo on how to build a custom SQL index for images data type.

Author: José Roberto Pereira

Experts 94Community 58


ZAPM is a shell - extends the ZPM shell and adds any other commands Working in the terminal I got tired of going from my shell to the zpm shell and back. My shell was supplied with additional specific commands and I decided to merge the two shells. The ZAPM checks if the command entered is a ZPM command, then sends the execution to the ZPM shell. Then I wanted to improve the color commands and expand the functionality. And now ZAPM has survived to the first version and can add any command that I need and remember it so that I can re-execute it.

Author: Sergey Mikhailenko

Experts 61Community 47


An application using multimodel concepts with real world data featuring an interactive chart of Cryptocoins from the biggest Exchange. A graph chart of fish species from all the world where you can see the pictures of each one and a blog using globals example. All Integration to ingest data are from public APIs and a great video explaining the solution.

Author: Renato Banzai

Experts 58Community 44


Showing the COVID-19 vaccination track count around the world and the COVID-19 Treatment and Vaccine development. Using as backend InterSystems IRIS in a multi-model schema.

Author: Henrique Gonçalves Dias

Experts 52Community 79

IRIS Publisher

This is an application to generate your online dynamic or offine static application documentation. You create XData to your classes with "text/html" or "text/markdown" mime type and the IRIS Publisher will collect all XData and create your documentation site using MkDocs.


Experts 34Community 31


This is a personal project, by Bert Sarens and myself, meant for the Intersystems Multi-model contest. The goal of this application was to build a product filter that was capable of filtering large amounts of products on a large amount of filters. This project uses objects, some sql access to these objects and plain global access to for the indexing. We've used a IRIS backend that is called via a REST-API from a react frontend application.

Author: ivo Ver Eecke

Experts 29Community 28


This kit allows you to find out about, explore and try out the unique QEWD-JSdb "persistent JavaScript Objects", made possible by IRIS Globals. For simplicity of use and speed and ease of installation, the kit is designed for use with the IRIS Community Edition Docker Container: you can be up and running in a matter of a few minutes. However, QEWD-JSdb and the Node.js-based QEWD framework can be easily installed on any IRIS (or Cache) system. Layered on top of QEWD-JSdb's persistent JavaScript objects are several examples of the multi-model capability it provides: Lists, key/object store and XML DOM. The latter is a great example of the persistent Objects concept: it includes XPath query capability, provided by the standard, unmodified Node.js XPath module. This module is designed to work with an in-memory XML DOM, and does not know or care that the DOM object provided by QEWD-JSdb is actually on-disk (in IRIS Globals)! The kit includes tutorials for QEWD-JSdb itself and the three layered database models. You can try out the tutorial examples interactively using the Node.js REPL. Also included are web-based "explorer" applications that allow you to watch the database models in action. Finally, using the QEWD Monitor application's graphical QEWD-JSdb Inspector option, you can explore the underlying hierarchical storage of the IRIS Globals created and maintained in the tutorials and explorer applications.

Author: Rob Tweed

Experts 24Community 42


This project contains an example of how we get to manipulate geographic data on an IRIS Intersystem platform.

Author: davi massaru teixeira muta

Experts 23Community 23


IRIS solution for managing SFTP log files

Author: Oliver Wilms

Experts 19Community 24


The application use generic interface to perform query on data schema and used globals as configuration. At run time, the program will implement the query referring to configurations. It's working as a prototype ObjectScript MyBatis Template.

Author: Botai Zhang

Experts 12Community 91