Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: IntentEvent has no targetApp property #1313

Closed
1 of 6 tasks
Roaders opened this issue Aug 13, 2024 · 3 comments
Closed
1 of 6 tasks

Question: IntentEvent has no targetApp property #1313

Roaders opened this issue Aug 13, 2024 · 3 comments
Labels
question Further information is requested

Comments

@Roaders
Copy link
Contributor

Roaders commented Aug 13, 2024

Question Area

  • App Directory
  • API
  • Context Data
  • Intents
  • Use Cases
  • Other

Question

There is no targetApp (or equivalent but better named property) on the IntentEventPayload. There is an originatingApp optional property but nothing that the routing logic or the receiving agent can use to determine where the message should be sent or to validate that the message is in fact intended for this agent.

We are implementing a smart routing solution as the main mechanism for managing messages in our implementation but we also want to support dumb routing where every agent and proxy gets every message and the proxy then decides if if should respond to the message. With no targetApp this is not possible.

@Roaders
Copy link
Contributor Author

Roaders commented Aug 16, 2024

This also applies to ChannelChangedEvent and to a lesser extend BroadcastEvent (broadcast even can be sent to many agents, the other events I think would only be sent to one app).

@kriswest
Copy link
Contributor

As discussed in another thread, the protocol and the FDC3 API itself are not really designed for an open bus that 'agents' in multiple apps pull things from when they are addressed to them. FDC3's design is based on the concept of a single Desktop Agent which acts as a broker or router for messaging between apps, each of which has an API endpoint to communicate with the agent.

We've then extended that conceptual framework in FDC3 2.1 with Desktop Agent Bridging to enable multiple agents to communicate with each other, allowing the apps in each of their scopes to talk to each other - in that situation we've again got a router or broker in the 'bridge' which decides who to forward requests and responses on to. Router can be dumber, but not quite dumb.

Having been involved in container implementations with a lot of messaging, I tend to assume everyone getting every message is a bad idea. It generates resource usage in unneccessary places and what you lose in spending resources on routing, you gain back many times in efficiency, particularly as the number of interoperating apps increases (or indeed as the rate that they send messages increases). Further, message routing is easier (or in fact possible!) to secure, which was a key consideration we had when designing a solution.

@kriswest
Copy link
Contributor

Hence, I will close this issue for now (reopen if anything didn't make sense) as we shouldn't add routing fields to the communication protocol messages, which need to be routed by the Desktop Agent itself as introduced in the overview of the API standard:

A Desktop Agent ... serves as a ... message router (broker) for applications in its domain

@kriswest kriswest added the question Further information is requested label Sep 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants