Project Background
Meta's Messenger iOS team is preparing an offline-readiness upgrade for a new feature that lets users view recent conversations, attachments metadata, and draft replies with poor connectivity. The current prototype stores data in flat files, but several engineers want to move to SQLite/Core Data before launch to improve querying, consistency, and future extensibility. You are the mobile engineer driving execution for the storage decision and launch plan.
Key Stakeholders
The Messenger Product Director wants the feature launched in 10 weeks to support a broader reliability initiative. The iOS Engineering Manager wants to minimize migration risk and avoid regressions in app startup time. Privacy and Legal require clear data retention behavior for local data. The Site Reliability and QA teams care about crash rates, corruption recovery, and rollback safety.
Constraints
- Team: 6 iOS engineers, 1 QA engineer, 1 product manager, 0 additional headcount
- Timeline: 10 weeks to ship to 5% of iOS users, then scale if metrics hold
- Budget: $120K for test devices, automation, and temporary contractor QA support
- Current app baseline: startup p95 must stay under 1.8s, crash-free sessions must remain above 99.85%
- Migration dependency: local storage changes must be compatible with an upcoming sync-layer update landing in Week 6
Complications
- The Android Messenger team is keeping flat files for now, so cross-platform behavior may diverge.
- A prior iOS cache migration caused a 0.4% increase in crash rate for older devices, making leadership cautious.
- Privacy asks for per-thread deletion guarantees within 24 hours, which may be harder to validate with one of the storage approaches.
Your Task
- Recommend whether to use SQLite/Core Data or flat files for this launch, with explicit trade-offs.
- Create a 10-week execution plan including milestones, owners, and dependency management.
- Define a migration and rollback strategy for existing local data.
- Propose success metrics and launch gates for 5%, 25%, and 100% rollout.
- Identify the top risks and how you would mitigate them before and after launch.