(Do not Merge) testing for source-intercom block simultaneous read from companies endpoint#74344
Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
Note 📝 PR Converted to Draft More info...Thank you for creating this PR. As a policy to protect our engineers' time, Airbyte requires all PRs to be created first in draft status. Your PR has been automatically converted to draft status in respect for this policy. As soon as your PR is ready for formal review, you can proceed to convert the PR to "ready for review" status by clicking the "Ready for review" button at the bottom of the PR page. To skip draft status in future PRs, please include |
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. 💡 Show Tips and TricksPR Slash CommandsAirbyte Maintainers (that's you!) can execute the following slash commands on your PR:
📚 Show Repo GuidanceHelpful Resources
|
|
|
Deploy preview for airbyte-docs ready! ✅ Preview Built with commit ecf403c. |
Co-Authored-By: alfredo.garcia@airbyte.io <freddy.garcia7.fg@gmail.com>
|
/format-fix
|
|
/publish-connectors-prerelease
|
|
For companies & company_segments; We may need to update the ErrorHandler to retry on the scroll 400 error, since there is no delay between these running sequentially, which will cause the subsequent stream in a group to still fail for: The backoff should be 1 minutes since that is how long it takes for a scroll to expire |
|
For contacts stream can we also add 404 handling to skip |
… 404 skip for contacts - Companies stream: Change 400 'scroll already exists' from FAIL to RETRY with 60-second constant backoff (scroll expiry time is ~1 minute) - Contacts stream: Add 404 response filter with IGNORE action to skip on 404 Co-Authored-By: alfredo.garcia@airbyte.io <freddy.garcia7.fg@gmail.com>
|
Both asks from comment 1 and comment 2 are addressed in ecf403c:
|
|
Addressed both comments in commit 1. Companies 400 scroll error retry (re: comment):
2. Contacts 404 skip (re: comment):
All CI passing — connector tests: 9 ✅, 4 💤. Ready for a new pre-release publish when you're ready. |
|
/publish-connectors-prerelease
|
…onnector config - Add api_rate_limit config option (requests per minute, default: 10000) - api_budget now derives limits from config: 95% of api_rate_limit for per-minute, and 95% / 6 for per-10-second window - Customers with higher rate limits (e.g. 150k/min) can now set api_rate_limit to leverage their full API throughput instead of being throttled at 9500 req/min Co-Authored-By: alfredo.garcia@airbyte.io <freddy.garcia7.fg@gmail.com>
|
/publish-connectors-prerelease
|
What
Testing PR that copies changes from #71141 (at commit
ab9549804ef) onto a fresh branch frommaster. This enables testing theblock_simultaneous_read/stream_groupsfeature for the Intercom companies endpoint against the current mainline.Related: airbytehq/airbyte-python-cdk#870, airbytehq/airbyte-python-cdk#940
How
manifest.yaml: Addsstream_groupswithBlockSimultaneousSyncsActionfor thecompaniesstream to prevent concurrent reads that cause Intercom API errors. Addsapi_budgetfor rate limiting,concurrency_levelwith a user-configurablenum_workersparameter, and swaps in aCustomErrorHandler(ErrorHandlerWithRateLimiter) for proactive rate-limit throttling.metadata.yaml: Pins base image to dev CDK version7.10.2.post31.dev22785446959(which includesstream_groupssupport). BumpsdockerImageTagto0.13.16-rc.5.poe_tasks.toml(new): Overrides default tasks to pin the CDK CLI to the same dev version.unit_tests/pyproject.toml+poetry.lock: Pins test dependency toairbyte-cdk==7.10.2.post31.dev22785446959and regenerates lock file.docs/integrations/sources/intercom.md: Reformatted changelog table; added entry for0.13.16-rc.5.Updates since last revision
7.6.1.post28.dev22724700845→7.10.2.post31.dev22785446959in all locations (metadata.yaml,poe_tasks.toml,unit_tests/pyproject.toml) per review comment. Regeneratedpoetry.lockaccordingly.Review guide
manifest.yaml— Main logic changes:stream_groups,api_budget,concurrency_level, error handler swapmetadata.yaml— Dev CDK pinning and version bumppoe_tasks.toml— New file for CDK CLI version overrideHuman review checklist
ErrorHandlerWithRateLimiterexists insource_declarative_manifest.components— it's referenced but not in the diff7.10.2.post31.dev22785446959includes thestream_groups/BlockSimultaneousSyncsActionfeaturespoetry.lockresolves cleanly against the new CDK version (lock was regenerated withpoetry lock)User Impact
When deployed, syncs that include both the
companiesstream and its childcompany_segmentswill no longer make simultaneous API calls to the companies endpoint, preventing Intercom API rejection errors. The newnum_workersconfig allows users to tune concurrency (default 10, max 40).Can this PR be safely reverted and rolled back?
Link to Devin Session: https://app.devin.ai/sessions/dc102341e19a43b09eb71b8124207e91
Requested by: Alfredo Garcia (@agarctfi)