Indeed one of the design elements for the executor based threading model in ROS2 is that we wanted to be able to support synchronous pipelines. To achieve that we’ll need to develop a custom executor that’s aware of the pipeline flow, but once that is configured it can synchronously call each element in the pipeline. This in combination with the unique pointer publishing API supporting zero copy intraprocess message passing should be quite powerful.