We want to iterate over large global structures in real-time without blocking or locking readers. How can we safely use $Order() and implement a lock-free analytics approach?
Hi Community,
Are you a Python developer? If so, you can already start building apps with InterSystems IRIS without learning a new programming language!
👨💻Try this exercise to get started quickly with using Python's familiar DB-API interface to connect to an InterSystems IRIS database and run SQL queries.
💬What was your experience with the exercise? Let me know in the comments!
Hi, Community!
What did you enjoy most about being a Subject Matter Expert?
Many thanks to our SMEs for sharing their experiences—including @Brendan Bannon, @Lori Fassman, @Attila Toth, and @Stephen.Canzano.
What about you?
- If you're already a SME, what did you gain from the experience?
- What questions do you have about the process?
As always, reach out to certification@intersystems.com if you'd like to learn more.
.png)
Target Practice for IrisClusters with KWOK
KWOK, Kubernetes WithOut Kubelet, is a lightweight tool that simulates nodes and pods—without running real workloads—so you can quickly test and scale IrisCluster behavior, scheduling, and zone assignment. For those of you wondering what value is in this without the IRIS workload, you will quickly realize it when you play with your Desk Toys awaiting nodes and pods to come up or get the bill for provisioning expensive disk behind the pvc's for no other reason than just to validate your topology.
Here we will use it to simulate an IrisCluster and target a topology across 4 zones, implementing high availability mirroring across zones, disaster recovery to an alternate zone, and horizontal ephemeral compute (ecp) to a zone of its own. All of this done locally, suitable for repeatable testing, and a valuable validation check mark on the road to production..png)
Hi:
I see a lot of cool REST apps and i'm trying to host something in the TIE using REST/Axios with VITE.
At the moment i will probably host the application in web applications in Intersytems.
For authorisation and getting the logged in user and password to any app, is there a standard people are doing?
I.e. for axios you might have this from the app
auth: {
username: apiUser,
password: apiPass
}But surely you want to pass through credentials from the IRIS logged in user, or alternatively pass the credential request to IRIS API to first receive the data.
I have a class that extends %CSP.REST which made I deployed using $system.OBJ.MakeClassDeployed. After upgrading IRIS, the web app which uses that class no longer works with an ObjectScript error.
In the past, I fixed that problem by adding a dummy new line or a comment then recompiled that class. For this deployed class, I can't add a new line and recompile the class (the code shows up as locked in Studio). Simply running $system.OBJ.compile() is not fixing the web app issue.
Is there a way to edit a deployed class then recompile it?
Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Hello Community,
When I compile the Sample.User class for the first time, and include an ObjectGenerator method intended to run certain logic during each compilation, it throws a <CLASS DOES NOT EXIST> error. However, recompiling the same class works as expected.
I understand this happens because the class hasn’t been fully compiled yet during the first pass. To overcome this issue, are there any specific callback methods available that can safely be used after the class is fully compiled?
Spoiler
Summer is coming to an end, and we’re sure you had plenty of highlights! ✨
Maybe you learned something valuable, got yourself a reward on Global Masters, or even joined READY 2025 🎉
Here’s a quick checklist — but you can, of course, share anything else about your summer in the comments.
Hey Community,
It's time for the new batch of #KeyQuestions from the previous month.

Hi,
I have the following transform working but i also want to add another string of text for it to look for but i'm unsure of how to write this in. The two bits of text are "NOT DECTECTED" and "Negative"
.png)
Hi
How can I set a default value in a dataCombo?
I tried
{
zenPage.getComponentById('mycombo').setProperty('selectedIndex',0);
//zenSetProp('mycombo','selectedIndex',0);
}
and didn't work, I can not use the value property because I don't know what the values in my combo are going to because they loaded
Thanks
To better understand Streams in IRIS I'll start with a short
History
In the beginning (before IRIS), there was just basic access to external devices.
The 4 commands OPEN, CLOSE, READ, WRITE still work and are documented
by Introduction to I/O in detail.
Especially for files, this is a direct access to your actual file system.
You have to take care of any status or other signal in your code.
Also, any code conversion or similar is up to you.
Class %Library.File aka %File offers a large collection of methods and queries
for standard operations on directories and files.
Hi all,
It's me again 😁. In the pervious article Writing a REST api service for exporting the generated FHIR bundle in JSON, we actually generated a resource DocumentReference, with the content data encoded in Base64
.png)
Question!! Is it possible to write a REST service for decoding it? Because I am very curious what is the message data talking about🤔🤔🤔
OK, Let's start!
1. Create a new utility class datagen.utli.decodefhirjson.cls for decoding the data inside the DocumentReference
Class datagen.utli.decodefhirjson Extends %RegisteredObject
{
}2. Write a Python function decodebase64docref to
I am trying to add Plotly Bar graph in a div to a CSPpage. I am working in IRIS 2022.1. I created persistent class.
I copied relevant code into github repo:
oliverwilms/iris-python-plotly
iris-python-plotly/csp/otwPlotly.csp at master · oliverwilms/iris-python-plotly
ClassMethod PlotlyDiv(pTrnYear = 2025, pTrnMonth = 8) As %String
{
Set importlib = ##class(%SYS.Python).Import("importlib")
Set plotdiv = ##class(%SYS.Python).Import("plotdiv")
Do importlib.reload(plotdiv)
Set div = plotdiv.
Technical Documentation — Quarkus IRIS Monitor System
1. Purpose and Scope
This module enables integration between Quarkus-based Java applications and InterSystems IRIS’s native performance monitoring capabilities.
It allows a developer to annotate methods with @PerfmonReport, which triggers IRIS’s ^PERFMON routines automatically around method execution, generating performance reports without manual intervention.
2. System Components
2.1 Annotation: @PerfmonReport
- Defined as a CDI InterceptorBinding.
- Can be applied to methods or classes.
I have a custom defined priority field that is being stored as a number type
<record name="LocalClinicalMeSHTerms" type="serial">
<field name="LocalClinicalExpertiseCodedValue" type="{CODETYPE}" codeFamily="HSPD" codeTable="LocalClinicalExpertise" codeScheme="{MASTER}"/>
<field name="LocalCliniclDisplayOrder" type="number"/>
</record>However, within the overviewIndividual.cls form
{
"type": "HSPD.collection",
"key": "LocalClinicalMeSHTerms",
"hideExpression": "formState.lib.hideField(formState) && model.The built-in %JSONExport() fails with circular references in deeply nested objects. How can I write a custom serializer that supports circular detection and reference tracking?
Some languages have the concept of a garbage collector for automatic memory management. I'd like to know if something like this exists in InterSystems Caché in the context of routines, %CSP.REST, or %CSP.Page.
The question arises from the %Close() method of the %RegisteredObject class. This indicates that I need to manually clear the object from memory if it's no longer in use, or in the web context, if the request has completed. Is this correct? Or am I completely wrong?
Thank you!
I need to build an integration solution that reads messages from a Kafka topic. The topic has 3 partitions and contains several million messages.
For certain reasons, I can only use the standard EnsLib.Kafka.Service class and cannot use either KafkaClient or Python.
To measure performance and collect statistics I created a simple key + timestamp table with no indexes (so it is unlikely to be a bottleneck). Next, I started an instance of EnsLib.Kafka.Service. In the OnProcessInput method, I receive a message, extract the key from it, get the current time, and write the row to the table.
We are happy to present the bonuses page for the applications submitted to the InterSystems .Net, Java, Python, and JavaScript Contest!
See the results below.

| Project |
XEP
|
Native SDK
|
PEX
|
Java Persister
|
ADONET & . |
Hi Community,
It's voting time! Cast your votes for the best applications in our InterSystems .Net, Java, Python, and JavaScript Contest:

How to vote? Details below.
This anthropic article made me think of several InterSystems presentations and articles on the topic of data quality for AI applications. InterSystems is right that data quality is crucial for AI, but I imagined there would be room for small errors, but this study suggests otherwise. That small errors can lead to big hallucinations. What do you think of this? And how can InterSystems technology help?
The ObjectScript language has incredible JSON support through classes like %DynamicObject and %JSON.Adaptor. This support is due to the JSON format's immense popularity over the previous dominance of XML. JSON brought less verbosity to data representation and increased readability for humans who needed to interpret JSON content. To further reduce verbosity and increase readability, the YAML format was created. The very easy-to-read YAML format quickly became the most popular format for representing configurations and parameterizations, due to its readability and minimal verbosity.
I want to build an event store using raw globals and replay events for rebuilding state. Can I hook into IRIS journaling or write my own event log and replay engine?
We want to use IRIS as a backend for a lightweight blockchain or DLT. Can we model blocks using deterministic globals and implement consensus (PBFT, Raft) externally while using IRIS as the ledger?
I need to ingest streaming data over WebSockets. How can I create a custom inbound adapter for IRIS productions that supports many concurrent socket connections?
We require user-specific row access (row-level security). How can we enforce this in SQL and ObjectScript using custom class parameters and dynamic WHERE clause injections?
We’re ingesting high-volume HL7 messages and converting them to FHIR in near-real-time. How do we design a streaming ETL pipeline using interoperability (productions) that scales horizontally?


