Skip to content

feat(core): [Scope-Based Deduplication 2] Add scope-based duplicate event processor - #6430

Draft
adinauer wants to merge 1 commit into
feat/scope-based-deduplication-processor-forkfrom
feat/scope-based-deduplication-processor
Draft

adinauer wants to merge 1 commit into
feat/scope-based-deduplication-processor-forkfrom
feat/scope-based-deduplication-processor

Conversation

@adinauer

@adinauer adinauer commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

PR Stack (Scope-Based Deduplication)


📜 Description

Add the internal scope-based duplicate event processor. It correlates the same throwable across exact mechanism sources within a short monotonic window, keeps weak bounded state, atomically consumes different-source pairs, and forks with fresh state.

The processor is not installed or publicly configurable in this PR.

💡 Motivation and Context

The existing SDK-global processor permanently remembers throwable identities. Reusable singleton exceptions can therefore suppress later, unrelated failures. The new processor provides the request/isolation-scope-local state machine without changing existing behavior yet.

refs: #6365

💚 How did you test it?

  • ./gradlew :sentry:test
  • ./gradlew spotlessApply :sentry:updateKotlinAbi
  • Added coverage for exact and unknown sources, reusable singleton exceptions, stale state, bounded capacity, weak keys, concurrency, cause handling, and processor forks.

📝 Checklist

  • I added GH Issue ID & Linear ID
  • I added tests to verify the changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • Review from the native team if needed.
  • No breaking change or entry added to the changelog.
  • No breaking change for hybrid SDKs or communicated to hybrid SDKs.
  • Public API changes reviewed by another Mobile SDK team member or implemented according to the develop docs spec.

🔮 Next steps

The next PR exposes the opt-in configuration, installs the processor on isolation scopes, and adds integration coverage.

#skip-changelog

⚠️ Merge this PR using a merge commit (not squash). Only the collection branch is squash-merged into main.

Correlate repeated throwable captures by exact mechanism source within a short bounded window. Keep state weak, scope-forkable, and atomic so reusable singleton exceptions are not suppressed across unrelated occurrences.

Refs GH-6365

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor
Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 6bf6c7f

@sentry

sentry Bot commented Oct 30, 2026

Copy link
Copy Markdown

📲 Install Builds

Android

🔗 App Name App ID Version Configuration
SDK Size io.sentry.tests.size 8.62.0 (1) release

⚙️ sentry-android Build Distribution Settings

@adinauer adinauer changed the title feat(core): [Scope-Based Deduplication 2] Add duplicate event processor feat(core): [Scope-Based Deduplication 2] Add scope-based duplicate event processor Oct 30, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant