Duplicate Detection Service
Component Detail
Service Layer
high complexity
backend
0
Dependencies
0
Dependents
6
Entities
0
Integrations
Description
Server-side service that evaluates a candidate activity record against existing activities for the same peer mentor within a configurable time window. Computes a confidence score using indexed primary signals (user_id, activity_date, activity_type_id) and fuzzy secondary signals (duration within 15 minutes, contact_id match) to determine whether the submission is likely a duplicate.
duplicate-detection-service
Responsibilities
- Run similarity query against existing activities using indexed columns for performance
- Apply fuzzy matching on duration (±15 minutes) and contact_id as secondary signals
- Compute and return a confidence score for duplicate likelihood
- Support per-record checks for bulk registration flows
- Accept configurable time window (default: same day) for duplicate comparison
Interfaces
checkForDuplicates(candidateActivity): DuplicateCheckResult
checkBulkForDuplicates(candidateActivities[]): DuplicateCheckResult[]
computeConfidenceScore(candidate, existing): number
setTimeWindowConfig(windowHours)
setConfidenceThreshold(threshold)
getConflictingRecord(userId, activityDate, activityTypeId): Activity | null
Related Data Entities (6)
Data entities managed by this component