Run 2 apps on 2 holoscan docker images and make connection between ports

I’m developing an app using holoscan sdk. I want to run 2 docker images which will be running 2 apps. But one output port of one operator from first holoscan image should be connected to one input port of one operator from second holoscan image. Is it possible? if yes then how?

Great question. Assuming from your question that the 2 apps are both Holoscan apps, in our next release there will be a new distributed feature that will allow us to run one Holoscan app across different nodes, and you can construct your two current apps as two fragments of the same app. We can revisit this post once the next release comes out for more details.

Thanks @jinl for the reply.
In my application there are several operators. In one version of my app the first operator generates data and passes it on to the next operator and the cycle continues. But in the new version of my app I don’t want to generate data in the first operator. I want a way so that my first operator can receive data on it’s input port buffer from an external source (External source doesn’t necessarily need to be holoscan app running in a container).
Is there any way to do this in the current version of holoscan?

Could you tell us more on what the intended data format is that you’d want to receive in the first operator?
We could see the Basic Networking Ping application and the Advanced Networking Benchmark application for how to use network operators.
If you want your first operator to receive sensor data, HoloHub Applications also include examples of using video capture cards (AJA and Deltacast), USB or HDMI video source, USB-based RTL-SDR dongle, etc.

@jinl My intended data format is actually numpy array. I want my first operator to wait untill it receives some data on it’s input port buffer (I’m hoping that some external source would be able to put the numpy array on that buffer in some way). I’m actually developing the app in python. So it would be really helpful if you could share some information or example code implemented in python.

Unfortunately there aren’t exact examples we can share at this moment. If you’d like your first native Python op to read in data from a buffer that another Python process writes to, it would not be a Holoscan SDK-specific implementation. It would be the same as two non-Holoscan applications with one writing to and one reading from a buffer.

You could still refer to the two applications using network operators above.

If some external source is sending the data, it could be via some IPC mechanisms, either unix pipes, named pipes, or unix domain sockets. There are likely python equivalents for these.