Skip to content
ALI HAITHAM·TECH·responds in <1h
  • Homestart here
  • Workcase studies, projects
  • Serviceswhat I will build for you
  • Writingessays, series
  • Traincourses, labs, cohorts
  • Aboutthe engineer behind this site
Sign inStart a project
ALI HAITHAM · TECH
  • Home↗
  • Work↗
  • Services↗
  • Writing↗
  • Train↗
  • About↗
Sign inStart a project
Online
ALI HAITHAM·TECH

Engineering studio. Damascus, GMT+3.

aliyosef.online

Studio

  • Work
  • Writing
  • Training
  • About
  • Contact me

Portal

  • Sign in
  • Open a ticket
  • Track project
  • My account

Resources

  • Docs
  • Status
  • Changelog
  • Brand kit
  • Privacy
  • Terms

Newsletter

Field notes and tech news. Weekly. No fluff.

Free. Unsubscribe anytime.

Find me elsewhere
© 2026 Ali Haitham Yosef. All rights reserved.Hand-built in React 19. No frameworks of frameworks.Last deployed · 2026-05-08All systems operational
  1. Home/
  2. Writing/
  3. Series
SERIES · Series 01

Building a sync engine from scratch.

Five parts on the engine that keeps a Flutter client and a Laravel backend honest under real-world network conditions.

5parts27min total
Start with Part 1→Skim the parts↓
THE PREMISE

After a year of running this in production for a multi-tenant accounting app, the answers I found were rarely the textbook answers. Each part of this series picks one structural problem (queueing, conflict resolution, reconnect storms, transport choice, migrations) and walks through what we tried, what broke, and what survived contact with rural cellular networks.

THE SEQUENCE✓ read · ◐ in progress · ○ unread
  1. 01○
    Building a sync engine, part two: orderingVector clocks for the offline reality. Why they pay off, and the simpler model that does not.
    Nov 28, 202513 min
    →
  2. 02○
    Building a sync engine, part one: the queueSeries opener. The shape of an outgoing queue, why ordering matters, and the test harness that catches everything.
    Apr 20, 202614 min
    →
2 parts · 27 min total
AUTHOR’S NOTE
If you only have time for one, start with Part 3, the reconnect storm. It's the part that changed how we thought about every other piece.
ALSO ON THIS TOPIC
  • PB
    May 5, 2026·Sync engines

    When polling beats websockets

    A year of trade-offs in Mohaseb. Why the obvious answer was wrong on our network conditions.

    8 min
  • CR
    Apr 28, 2026·Sync engines

    Conflict resolution in offline-first apps

    Last-write-wins is almost always wrong. Here is what works in practice when two clients disagree.

    10 min
  • RS
    Apr 12, 2026·Sync engines

    The reconnect storm problem

    When 800 phones come back online at once, what happens to your server. The patterns that survive.

    7 min
Done with the series?
Browse all essays→Start a project↑