Skip to content

Make message_passing public#130

Merged
castler merged 2 commits intoeclipse-score:mainfrom
etas-contrib:make-message_passing-public
Apr 23, 2026
Merged

Make message_passing public#130
castler merged 2 commits intoeclipse-score:mainfrom
etas-contrib:make-message_passing-public

Conversation

@NEOatNHNG
Copy link
Copy Markdown
Contributor

@NEOatNHNG NEOatNHNG commented Jan 12, 2026

Other infrastructure components (also external to S-CORE) such as the SOME/IP Gateway or the diagnostics stack may re-use it for their internal communication needs.

Apart from the reduced implementation and resource overhead for infrastructure components, it is also beneficial to use message_passing instead of trying to build on top of mw::com to lessen the amount of configuration the integrators have to write in order to make those infrastructure components work. Otherwise they have to configure the infrastructure component and in addition also provide an mw::com configuration for the service instances used internally in the infrastructure component. This is error prone and provides negligible additional value.

@NEOatNHNG NEOatNHNG marked this pull request as ready for review January 12, 2026 11:19
@LittleHuba LittleHuba added the import-started-do-not-modify Import of the PR was started. No further modifications allowed. label Jan 14, 2026
@LittleHuba
Copy link
Copy Markdown
Contributor

Closing this, as visibility was extended appropriately for other S-CORE modules to access the concrete targets.
Making this publicly visible is not intended, since this is a library not intended for users of S-CORE.

@LittleHuba LittleHuba closed this Jan 28, 2026
@NEOatNHNG
Copy link
Copy Markdown
Contributor Author

We have other use cases in infrastructure components apart from logging where we would like to re-use the message passing. I mean it is OK if we don't want S-CORE applications to use message passing directly, but other infrastructure components should be fine. Similar argument could be made for shared_memory from baselibs. We also don't want applications to use that directly but we don't limit the visibility there either.

Most current example is the someip gateway where @lurtz is working on a bridge implementation which would also need to access message_passing. But we have also ETAS-internal use cases for this. @mishraajitesh

@NEOatNHNG NEOatNHNG reopened this Mar 12, 2026
@LittleHuba LittleHuba removed the import-started-do-not-modify Import of the PR was started. No further modifications allowed. label Mar 12, 2026
@LittleHuba
Copy link
Copy Markdown
Contributor

@NEOatNHNG could you please give some insight into the ETAS-internal use cases?
This would help us tremendously in our evaluation.
Currently, the agreement in S-CORE is that all communication between applications shall happen via mw::com.
If you have a valid use case for directly relying on message_passing, we should reopen that discussion.

Other infrastructure components such as the SOME/IP Gateway or the
diagnostics stack may re-use it for their internal communication
needs.
@NEOatNHNG NEOatNHNG force-pushed the make-message_passing-public branch from 86f5f40 to 251e701 Compare April 20, 2026 12:40
@NEOatNHNG NEOatNHNG changed the title Make concrete message_passing implementation public Make message_passing public Apr 20, 2026
Copy link
Copy Markdown
Contributor

@castler castler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we are not ready yet to give full advice (in written statement) when to use message passing and when to use LoLa.

In short:
If you need 1:N communication - you should use mw::com.
If you transfer bigger data (then you need zero-copy) - you should use mw::com

If you have only 1:1 communication and small data -> use message_passing.

When you could not change the visibility of the QNX dispatch target, we could merge this.

Comment on lines -206 to -210
visibility = [
"//score/mw/com/impl:__subpackages__",
"@score_logging//score/datarouter:__subpackages__",
"@score_logging//score/mw/log/detail/data_router:__subpackages__",
],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A user should just depend on //score/message_passing, not on //score/message_passing:message_passing_qnx_dispatch

Could you remove this part of the changset please?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the hint. Previously message_passing was an alias target that is why previously the extended visibility was also needed here. I have reduced it now.

Co-authored-by: Copilot <copilot@github.com>
@NEOatNHNG NEOatNHNG requested a review from castler April 23, 2026 16:48
@NEOatNHNG NEOatNHNG marked this pull request as ready for review April 23, 2026 16:48
@NEOatNHNG NEOatNHNG requested a review from crimson11 as a code owner April 23, 2026 16:48
@castler castler added this pull request to the merge queue Apr 23, 2026
Merged via the queue into eclipse-score:main with commit b9ef6e2 Apr 23, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants