It all depends on what type/format of data you're trying to exchange and how you want to exchange it.  Is it HL7,  SWIFT, custom format...? Will it be via a file, email, TCP/IP, FTP...?  There are adapters available in Health Connect to use in services and operations that will handle a wide variety of types and protocols.  Have you taken a look at the online materials in the InterSystems Learning Portal?  There's a resource guide Learn Ensemble for Developers and System Integrators (Ensemble was the precursor to Health Connect) that may be helpful when first starting out.  It has a lot of information about how to design and build integrations.

If you provide a little more about what you're trying to do, it'll help in being able to provide more specific guidance.

There are actually two classes available for HealthShare customers in the InterSystems Learning Portal (learning.intersystems.com)

Search for "extending SDA" to find them.  I notice that searching for 'SDA extensions' does not locate them, so I will follow up on that.

Update: the search terms have been updated and now either search will locate the two courses.

Just looking at the production class for one of the sample edge gateways in the HealthShare demo, ActorPoolSize is specified like this:

<Production Name="HSEDGE1PKG.EdgeGatewayProduction" TestingEnabled="true" LogGeneralTraceEvents="false">
  <Description>An example production showing a simple file based HL7 v2.x Edge Gateway configuration</Description>
  <ActorPoolSize>1</ActorPoolSize>
  <Setting Target="Production" Name="ShutdownTimeout">10</Setting>
...

So, I'd assume you would just put 2, or whatever size you want, in between those tags in the installer manifest.  But, this is just my assumption, and not based on actual knowledge!

In my past life as a developer, I always tried to make my code as readable as possible for future maintainability.  There are always many ways to achieve the end result in COS, but your example seems pretty cryptic (at least to me!).  Indirection (@) was always a last resort since the meaning can get buried or isolated, making it more of a challenge to understand down the road.  But, of course, it's good to show examples of what's possible smiley

AFAIK, this is an 'old' feature in Ensemble to allow you to have two different sets of config for a component so that you can quickly switch between them.  For example, you could use it for switching between different environments for testing interfaces. You would have a different class, but the same 'Name' in the production.  I suspect you've got this duplication inadvertently.

But, my recollection on this is hazy, so perhaps someone else can add a better explanation.

I haven't coded DTLs for quite some time, but recall that I used code actions in a few places to set/use local variables, for example, to help keep track of the number of occurrences of lines in blocks of NTE or OBX segments in result messages.  One scenario I recall is where a lab system wasn't sending comments in the right place for the receiving system (since in an ORU_R01 message, NTEs can exist after the PID, OBR or OBX segments) and so we needed to move/copy the notes somewhere else in the msg. Undoubtedly, this could have been handled by a custom function, but sometimes developers just do things the way they know how to, and not necessarily the 'best' way!

The team would also use code actions quite often to insert comments into DTLs to help explain or document particular processing etc.