Ensure clients can reliably respond to contacts being added/removed
Adding or removing a contact may trigger actions by sync clients (such as adding or removing a private group shared with the contact).
If the app crashes immediately after the DB transaction that adds/removes the contact is committed, event handlers registered by clients may not be run.
Possible solutions:
- Clients could check the contact list at startup and perform any actions needed to bring their own state back into step with the contact list.
- Clients could register handlers to be run in the same DB transaction as the add/remove event.