Overview
High Level
graph LR
A["IDE A"]
AA["IDE B"]
AB["IDE C"]
B["Local Context Daemon"]
C(("Message Bus"))
D[("Documentation Provider")]
E[("Experts Provider")]
F[("Work Items Provider")]
X["Data sources"]
subgraph Client
A --> B;
AA --> B;
AB --> B;
end
subgraph Server
B --> C;
C -- 1 * --> D;
C -- 1 * --> E;
C -- 1 * --> F;
end
D --> X;
E --> X;
F --> X;
Low Level
sequenceDiagram
IDE->>+Daemon: Here's a context, answer this?
Daemon->>+Message Bus: Send this request to\nto subscribed parties
Message Bus ->>+Providers: Here's a query
Note right of Providers: Scatter query
Daemon->>+IDE: Here's a collection identifier
loop Poll
IDE->>+Daemon: Any new results for this identifier!
Daemon->>+IDE: Paged Results, if any
end
Note right of Providers: Empty result set
returned for lack of
understanding.
Providers ->>+Message Bus: Return results to requester
Message Bus ->>+Daemon: Here's a new result
Note left of Message Bus: Add to collection