Hi and welcome,
Its been about 20 years since migrating from MSM to Cache but from what I recall:
MSM uses routine names upto 8 characters long.
In Cache these names are more flexible longer.
Review the usage mapping of globals beginning with "Z and z". As these may become transactional.
Cache / IRIS has a "process private" syntax using "^||variablename" instead of ^Zvariable and is more explict this is a temporary storage.
In MSM you can redefine a routine line label (code entry point).
In cache / IRIS the compiler will help identify where these are to ensure they are not duplicated.
Cache / IRIS allow a longer line lengths.
Cache / IRIS have the concept of Macro-routines and Int-routines. If you wish to enhance existing code with SQL macros then suggest import the routines as Mac-routines to allow this capability in future.
Cache / IRIS supports the "dot syntax" but also more modern brackets like "if (xyz) { do something } else { do somethingelse }
An advantage of the new bracket syntax is that it doesn't add levels to your process stack. So is more efficient.
I like that cache / IRIS supports long strings variables. So instead of getting MAXSTRING error going over 32K you can go up to somewhere like 2MB for in memory variable.
In addition, to the point made on renaming how to open a file device, Cache / IRIS also has a more explicit modern object oriented syntax you could use:
Set dev=##class(%File).%New("MyFileName.txt")
Do file.Open("WSN")
Do file.WriteLine("This is a line of text")
See:
https://docs.intersystems.com/irisforhealth20221/csp/documatic/%25CSP.Documatic.cls?&LIBRARY=%25SYS&CLASSNAME=%25Library.File
Reasons to go the Cache / IRIS route might include:
1) Support for complex SQL structures from existing global data.
When moving from MSM to Cache an immediate benifit was reportability.
Was able to define "Classes" with storage mapped to existing globals.
This gave a SQL projection against which modern SQL reporting tools could be run against existing data.
2) High Availability. IRIS provides Mirroring.
This allows you to have two nodes. A current primary member, and a backup failover member that is kept up to date and ready to AUTOMATICALLY take over.
3) Reporting. You might not need one, but will mention with Mirroring you can also have async mirrors. These are up to date copys of data on seperate instances available to run big SQL reports, to insulate that processing from busy user application experience.
4) Consolidation. A big customer had a recent upgrade going from Cache 2010 to IRIS 2019. They originally had a scaled out database with 3 application database instances in front of a master database instance, with additional seperate database instances to process laboratory instrument integration.
Performance has improved so much with IRIS we only needed a single IRIS Database Instance to do all that same work.
5) XML processing and generation
I had a need to process doctor payment data in XML files. With Classes was able to define XML SAX parser handler for REALLY FAST custom import of XML streams.
6) Streams. In MSM and Cache there is a limit for how long a stored string node can be.
However with a stream data type you can read & write much larger data in globals.
The new version of IRIS supports stream compression so for XML could save you 60-80% of storage.
7) REST application support. If you want to create new web apps to enhance aspects of you existing application one option is REST API to support single page applications. For example Typescript with Angular and Material.
8) Web Services. Either to provide services or consume external services.
9) Language bindings. There are many supported (Java / DotNet). The new IRIS even has Embedded Python.
This means you have to option to implement new IRIS classes with the Python language methods to run alongside existing code in the database.
10) FHIR app integration, FHIR repository, FHIR SQL
11) If you like SQL you might also like the IntegratedML feature in IRIS.
12) Container Virtualization is supported if you desire to move away from Physical hardware. IRIS is a cloud-first focused platform.
A better understanding of what you want to achieve may give opportunity to highlight further specific features from the myriad of options available.
Kind regards,
Alex