I have a system on Caché, which has about 100TB of data in it, with a couple of thousands of concurrent users. And it's ECM system, which in fact has no developers support for some time, but still able to be modified, as it's kind of low-code system, where all the forms can be configured with UI, all the processes and document's conventions as well, and it has integrations with many other systems. So, probably it can be proof that InterSystems is good enough for such cases.

Globals are stored in the database and they are limited only by the size of that database.

I'm not sure if the size of the database has any limits, at all, but at least what I know, is that I have database files with up to 10 terabytes per one file. And the only reason is that it's not large than that, we split the data into smaller files due to external reasons, such as filesystems, and just having smaller files makes it easier to operate as a file.

I have not played with the Foreground feature before, but, I tried to do it right now, and it looks like, you can just publish port 63300 when you run the container, so, your host's telnet client will be able to connect to the Foreground port. 

If you wish, you can change the port number, by setting it directly to the global

Set tPortRangeStart=$G(^Ens.Config("FGTelnetRange","start"),63300)
Set tPortRangeEnd=$G(^Ens.Config("FGTelnetRange","end"),63499)

Link to documentation

Local way, is actually how it was designed by default, and how you'll get the best experience.

What issues did you face? 

In short how to start using it.

  • You need to configure access to your server through parameters under "objectscript.conn"
  • Use your local code, if you already have it, or export code from the server, once you are connected
  • Edit and save files as a usual file, will save it on the server and compile it, in case of any compilation issues it will notify you about it.