Academy / Week 2 / SyncApp Architecture — High Level / SyncApp API — The Core Ingress Service

SyncApp API — The Core Ingress Service

Lesson 7.3 ⏱ ~10 min Week 2

💡 Why This Matters

SyncApp API is the gateway through which all PMS data enters the Weave ecosystem. Understanding its role, its upsert mechanism, HTTP streaming implementation, and its relationship to Data Service is fundamental to understanding the integration pipeline.

🎯 What You'll Learn

  • SyncApp API's role: receive all incoming (ingress) data from SyncApps and forward to Data Service
  • How Data Service is a gRPC-based web service storing data in a large Postgres DB (100+ instances, sharded by location)
  • The upsert mechanism: check if data exists → update if yes, insert if no
  • Record types: person (v2), appointment, and others — all generated from a code generation project
  • How HTTP streaming works: send headers once, then stream payload repeatedly without re-authentication
  • CSV upload feature: alternative path for uploading contact data as a CSV file
  • Custom contacts (request for contacts): manual contact creation without PMS integration

Watch Video

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

📋 Lesson Summary

SyncApp API is the most important repository in the integration stack — it's the single ingress point for all data from all SyncApps. It receives data and forwards it to Data Service via gRPC. Data Service stores everything in a Postgres database with 100+ instances, sharded by location. SyncApp API's primary operation is upsert: it checks if a record exists and updates or inserts accordingly — callers don't need to know the current state. Code for record types is auto-generated for consistency. HTTP streaming lets SyncApp send headers once and stream multiple payloads efficiently. Additional features include CSV uploads and custom contacts (manual contact creation).

🏷 Key Concepts

SyncApp APIIngress vs EgressData Service (gRPC + Postgres)Upsert MechanismRecord Types (Person v2, Appointment)Code GenerationHTTP Streaming HeadersCSV UploadCustom Contacts (Request for Contacts)100+ Data Service Instances

Key Takeaways

01SyncApp API is described as a 'glorified proxy service' — it doesn't have business logic, it just routes data to Data Service
02All data that enters Weave goes through SyncApp API — if it goes down, integrations break across the board
03Upsert is the only write operation you need to know: create + update combined into one idempotent call
04Record types are code-generated — don't hand-write them; use the data code generation project
05Data Service has 100+ Postgres instances sharded by location — each Weave customer has their own schema