Teams: Data flow / processing
See also the generic overview of our product data flows: Product Data Flows
Overview
In general, we have optimized the app to be as integrated with Microsoft Teams as possible. The result of this is that the architecture for Cloud & Server / DC is very similar. This is a bit uncommon for the on-premise systems, as traditional apps for these systems are not relying on any cloud service. To provide the same features for Jira Server & Data Center as well, there is currently no other way than using a cloud infrastructure.

Data flow for user interactions
As Microsoft Teams is a fully native cloud service, most of the user interactions from Jira and all user interactions from Teams require the involvement of our own infrastructure. While for example Outlook still supports connecting directly to Jira, the extensibility model for Microsoft Teams does not support such a possibility. When possible (technically and security wise), we still access Microsoft services from Jira via the users browser, instead our servers (Graph API direct access). Examples for user interactions are:
Starting a Microsoft Teams chat from Jira
Creating a new Jira issue from Microsoft Teams
Searching and linking a Jira issue from Microsoft Teams
Data flow for application triggered changes
Some features are triggered without user interaction - like Teams notifications. Instead use webhooks to be processed. Teams related examples for this are:
A Jira issue is updated and a Teams notification should be sent
A Jira issue card is posted in a Microsoft Teams channel and the Teams bot links the issue to the conversation