Academy / Sync App Fundamentals / SyncApp and Data Service

SyncApp and Data Service

Lesson 2.6 ⏱ ~5 min

💡 Why This Matters

SyncApp doesn't own the Weave database — that's Data Service's domain. Understanding the contract between SyncApp and Data Service (the schema, the transformation responsibility) is essential for understanding what SyncApp must produce.

🎯 What You'll Learn

  • How Data Service stores data: one SQL database per office, one table per entity type
  • Why each entity (patient, appointment, provider) has a predefined schema in Data Service
  • Why SyncApp is responsible for transforming raw PMS data into the Weave schema before sending it
  • The difference between data content (name, phone) and data format (how it's structured) across PMSs
  • SyncApp's dual responsibility: fetch data AND transform it to match Data Service's expected schema

Watch Video

Open in Google Drive 💡 Open in Drive for AI-powered transcript search and summaries

📋 Lesson Summary

Data Service maintains one SQL database per office, with one table per entity type (patients, appointments, providers, etc.). Each table has a fixed schema that Data Service expects — it will only accept data in that predefined format. SyncApp fetches data from PMSs where the format varies significantly between vendors. A patient record in OpenDental might look completely different in structure from one in InfiniteVT, even though both contain a name and phone number. SyncApp's job is to normalize this heterogeneous data into the consistent Weave schema before calling Data Service.

🏷 Key Concepts

Data Service SQL Database Per Office Entity Table Schema Data Normalization Weave Entity Schema Data Infra Team Transformation Responsibility

Key Takeaways

01Data Service owns the Weave database — SyncApp is just a client that calls Data Service's APIs
02Every entity SyncApp syncs has a fixed schema that Data Service enforces — mismatches will cause sync failures
03Different PMSs return the same conceptual data (patient name, phone) in different formats — SyncApp bridges this gap
04Data transformation is SyncApp's second core responsibility, alongside fetching
05If Data Service rejects data, the problem is almost always in SyncApp's transformation logic