Conflict detection
A conflict is detected when both the local device and the server have changes for the same record. The MergeEngine identifies conflicts by grouping changes by their unique record identifier (table name + record ID).Conflict resolution strategies
PocketSync supports four different strategies for resolving conflicts, defined in ConflictResolutionStrategy:Strategy | Description | Use Case |
---|---|---|
lastWriteWins (Default) | Most recent change based on timestamp wins | General purpose, when recent changes are typically more relevant |
serverWins | Remote changes always take precedence | When the server is considered the source of truth |
clientWins | Local changes always take precedence | When local user actions should override server changes |
custom | Uses a developer-provided resolver function | Complex scenarios requiring application-specific logic |
Best practices
When working with PocketSync’s conflict resolution:- Choose the appropriate strategy for your application’s needs
- Use custom resolution for complex business logic requirements
Limitations
The current conflict resolution system has these limitations:- Conflicts are resolved at the record level, not at the field level
- The default last-write-wins strategy depends on accurate device timestamps
- Conflicts between delete and update operations always follow the configured strategy