The Sync Log

Field notes on keeping two systems honest.

Practical writing on real-time data sync, field mapping, conflict resolution, and the parts of integration that only show up in production. Written by the people who build StackSync.

Abstract banner of overlapping data streams and a log of synced events

Hanna Korzeniowska · March 2026

Real-time sync vs batch ETL: the difference that bites at 2am

Batch ETL is the default because it is easy to reason about: a job runs on a schedule, reads from A, writes to B. The trouble is everything that happens between runs. A record changes at 09:05, the batch fires at midnight, and for fifteen hours two systems disagree about the truth.

Real-time, bidirectional sync removes that window. A change on either side is detected and propagated in seconds, in both directions. There is no run to wait for, and no one-way assumption baked in. The cost is that you have to think about conflicts up front, which is exactly the thing batch lets you ignore until it breaks.

The practical test: if a wrong value can sit in one system for hours without anyone noticing, you are running a batch job, whatever the dashboard calls it. If a wrong value is reconciled in seconds and logged, you are running a sync.

Mateusz Sobczak · February 2026

Why field mapping is the part everyone underestimates

The demo always looks clean: two systems, matching fields, data flows. Production is messier. One side calls it 'account_owner', the other 'OwnerId'. One stores a phone number as text, the other as a typed column. Half your integration effort is reconciling these mismatches, and most of it never makes it into the original estimate.

Automatic mapping and type casting take that work off the table for the common cases. When a destination table does not exist yet, generating one with sensible types beats hand-writing DDL that drifts from reality a week later.

Map what you can automatically, review the handful that need judgement, and write down the decisions. The goal is not zero human input; it is that the human input is small, deliberate, and recorded.

Hanna Korzeniowska · January 2026

Conflict resolution without losing your weekend

Two-way sync raises a question one-way pipelines get to dodge: when both sides change the same record, who wins? There is no universally correct answer, only the answer that fits your data.

Decide the rule per sync, not globally. A CRM might be the system of record for contact details while the database owns transactional state. Encode that, log every resolution, and make replay cheap so a bad rule is a five-minute fix rather than a manual reconciliation marathon.

Mateusz Sobczak · December 2025

What good pipeline monitoring actually shows you

A monitoring view that only says 'green' or 'red' is not monitoring; it is a mood ring. Useful observability tells you which records failed, why, where they came from, and lets you act on thousands of them at once.

Bulk replay and revert turn an incident from a spreadsheet exercise into a button. The difference between a calm Tuesday and a lost weekend is usually whether you can fix a batch of failed records without touching each one.

Hanna Korzeniowska · November 2025

No-code that does not box you in

No-code earns a bad name when it works right up until you need something it cannot express, then traps you. The version worth using lets a business user build the common flow visually, and lets an engineer drop into pro-code for the specific bit, without rebuilding everything.

Treat no-code as the fast path, not the only path. The test of a good tool is whether the escape hatch is there when you reach for it.

From notes to practice

Try the thing these notes are about.

Run a real-time, two-way sync on a 14-day trial and see how the ideas hold up in your stack.