Hi everyone, I have a question regarding connector...
# help-connector-development
t
Hi everyone, I have a question regarding connector performance. When running connectors in Airbyte 2.0 for large Teams Graph API datasets, the syncs are taking over 5 hours to complete. For context, this client has approximately 900+ users. Is this expected behavior for Airbyte? When we run the same data pull manually, it completes significantly faster. Any insights or best practices to optimize these runs would be greatly appreciated. Carolina Buckler
k
There isn’t a specific benchmark in the knowledge sources for Microsoft Teams / Microsoft Graph syncs with ~900 users, so I can’t say definitively whether 5+ hours is “expected,” only that long‑running syncs are common in Airbyte for large or API‑constrained sources. A few relevant points from the docs and forum content: - Connector performance is often bounded by the upstream API’s limits and pagination behavior, not just Airbyte resources. [[Intercom perf](https://discuss.airbyte.io/t/2089); [Teams docs](https://docs.airbyte.com/integrations/sources/microsoft-teams#sync-overview)] - The Microsoft Teams connector is explicitly subject to standard Microsoft Graph throttling and request limits, which can slow large, full‑dataset pulls. [[Teams docs](https://docs.airbyte.com/integrations/sources/microsoft-teams#sync-overview)] - In general, users do see multi‑hour syncs for large datasets, and support often confirms that this can be within the normal range for database/API connectors, with limited options to speed up a single sync beyond what the API allows. [[MySQL perf](https://discuss.airbyte.io/t/1092); [Throughput range](https://discuss.airbyte.io/t/2416)] Given that your manual pull is faster, the difference is likely due to: - How pagination and page size are configured in the connector vs. your manual script. - How aggressively your manual process uses concurrency vs. Airbyte’s single‑stream execution model. - Any additional overhead in Airbyte’s message processing pipeline. From the available guidance, here are the main levers you can use: 1. Use the largest safe page size in the connector configuration When building or customizing HTTP‑based connectors, Airbyte recommends using the largest page size the API supports, while respecting rate limits. [[Pagination perf](https://docs.airbyte.com/platform/connector-development/connector-builder-ui/pagination#performance-recommendations)] - If you’re using a custom/Builder‑based Teams connector, expose
page_size
in the config and set it high (within Graph API limits). - If you’re on the packaged Teams connector and page size is fixed, there may be less room to tune here. 2. Ensure you’re on Airbyte 2.0 with “faster sync speed”–enabled connectors Airbyte 2.0 includes platform‑level speed improvements, but they only apply if both source and destination connectors are on versions where “faster sync speed” is enabled. [[Airbyte 2.0](https://docs.airbyte.com/release_notes/v-2.0); [Faster sync](https://docs.airbyte.com/integrations/speed-improvements)] - Check whether your destination connector has a faster‑sync‑enabled version and upgrade both source and destination if possible. 3. Verify that infrastructure is not the bottleneck Airbyte’s own guidance is that CPU/memory sizing mainly affects how many syncs you can run concurrently and whether jobs get “stuck,” not the raw speed of a single API‑bound sync. [[Scaling Airbyte](https://docs.airbyte.com/platform/enterprise-setup/scaling-airbyte); [Perf Q&A](https://discuss.airbyte.io/t/205)] Still, confirm: - Worker and connector pods have enough CPU/memory (no throttling or OOM). - You’re not running many concurrent syncs that compete for resources. 4. Limit what you sync where possible Since Graph is throttled, reducing volume helps: - Disable unneeded streams (e.g., if you don’t need all Teams/Groups/Reports). - If you’re doing full refresh, consider whether you can move to incremental (where supported) to avoid repeated full backfills. 5. Accept that some multi‑hour runs are currently normal In other connectors, support has confirmed that throughputs of a few thousand rows/sec and multi‑hour runs for multi‑GB datasets are within the normal range, and that some connector updates have traded speed for stability. [[Oracle perf](https://discuss.airbyte.io/t/3284); [Throughput range](https://discuss.airbyte.io/t/2416)] Because the knowledge sources don’t include a direct comparison of Teams connector vs. manual Graph pulls, I can’t say whether your 5‑hour runtime is outside what the Airbyte team would consider acceptable for that specific connector. If, after: - maximizing page size (if configurable), - upgrading to faster‑sync‑enabled connector versions, and - confirming infra is not constrained, you still see a very large gap vs. your manual process, the next step would be to open an issue with logs and details so the connector team can inspect where time is spent (API wait vs. Airbyte processing).