Built Digitally
Real Estate Tech

Real-Time MLS & RESO Web API Sync: High-Throughput Architecture for Brokerages

Architecting a continuous, distributed sync engine that ingests 500,000+ listing changes daily with zero data loss, sub-second search indexing, and automated geo-enrichment.
Marcus Vance
Marcus Vance
Lead DevOps & Data Architect
September 18, 2025•8 min read
Real-Time MLS & RESO Web API Sync: High-Throughput Architecture for Brokerages
Executive Summary & Key Takeaways
  • RESO Web API OData protocols require granular token bucket rate limiting to prevent IP throttling from MLS boards.
  • Dual-stage ingestion pipelines decouple heavy image re-encoding from real-time price and status change propagation.
  • PostgreSQL with PostGIS extensions allows sub-5ms polygon radius searches across 1,000,000+ historical and active property records.
  • Automated fallback sync jobs run every 15 minutes to reconcile missed webhook events and preserve absolute data integrity.

“When a new listing or price reduction hits the MLS, our clients' buyers receive automated SMS alerts within 12 seconds, consistently beating national portals to the punch.”

Marcus VanceLead DevOps Architect, Built Digitally

1. The Challenge of Legacy RETS vs. Modern RESO Web API

For decades, the real estate industry relied on the archaic RETS (Real Estate Transaction Standard) protocol—an XML-based format that required clunky FTP-style batch downloads every few hours. The modern RESO Web API standard utilizes RESTful OData feeds with JSON payloads. However, managing connections across multiple regional MLS boards (e.g. TRREB, CRMLS, Bright MLS) introduces severe synchronization challenges: differing data dictionary schemas, strict API query rate limits, and massive image payloads.

2. The Dual-Stage Distributed Ingestion Pipeline

To achieve sub-15 second sync without triggering MLS rate limits, Built Digitally engineered a distributed worker architecture running on lightweight Go and Node.js microservices. Stage 1 handles lightweight metadata delta syncing (price changes, status updates, open house schedules) using high-frequency polling and webhook triggers. Stage 2 asynchronously handles media assets (RAW photography, floor plans, 3D tours), resizing images into WebP/AVIF formats at the edge before uploading to Cloudflare R2 object storage.
services/mls-sync/reso-client.ts
typescript
import { createODataClient } from "@reso/odata-client";
import { redisPublisher } from "@/lib/redis";

export async function pollMlsDeltas(lastSyncTimestamp: string) {
  const client = createODataClient({
    endpoint: process.env.RESO_API_URL!,
    token: process.env.RESO_BEARER_TOKEN!,
  });

  // Query only records modified since last timestamp
  const filter = `ModificationTimestamp gt ${lastSyncTimestamp}`;
  const stream = await client.getProperties({
    $filter: filter,
    $select: ["ListingKey", "StandardStatus", "ListPrice", "City", "Coordinates"],
    $top: 500,
  });

  for await (const listing of stream) {
    // Publish instantly to Redis channel for websocket dispatch
    await redisPublisher.publish("mls:listing:updated", JSON.stringify(listing));
  }
}

3. Geospatial Indexing with PostGIS

Search performance in real estate is intrinsically spatial. Buyers don't just search for a city—they draw custom polygons around school districts, transit corridors, or beachfront neighborhoods. By storing coordinates in PostgreSQL using geometry data types and spatial GiST (Generalized Search Tree) indexes, spatial containment queries that previously caused server timeouts now execute in under 10 milliseconds.
Sync Performance & Reliability Metrics
Pipeline ComponentLegacy Batch CronBuilt Digitally Stream Sync
Listing Change Latency2 to 4 hours< 15 seconds (Real-time)
Daily Record Capacity50,000 records1,200,000+ records
Photo Ingestion Throughput5 photos/sec120 photos/sec (Edge CDN)
Polygon Query Response450ms8.2ms (PostGIS indexed)
Sync Uptime SLA97.2%99.99% Guaranteed
Topics:#RESO Web API#MLS Sync#PropTech#Data Pipeline#PostgreSQL
Marcus Vance

Marcus Vance

Author
Lead DevOps & Data Architect

Marcus specializes in enterprise database clustering, high-throughput streaming pipelines, and real estate data standards (RESO Data Dictionary & Web API).

PARTNER WITH BUILT DIGITALLY

Ready to build your next-gen web platform?

Schedule a 30-minute discovery call or configure your custom software package online with full IP ownership.

Related Engineering Insights

View All