The Series· No. 30 · Act VII — The Data Platform

By DocuSeller · Published

The Data Platform
DocuSeller · No. 30

You cannot keep the tide

You can keep a tide table. You cannot keep the tide.

That sentence decided the architecture of our entire platform.

A person holds a printed tide table on dry ground beside visibly moving water A table is not the tideTide table
The table is right about most things. It has never once told you what the water is doing now.

There are two kinds of data inside a community association, and they behave nothing alike.

The first kind barely moves. Which units exist. Who owns them. Who sits on the board. Who works there. It changes when a house sells or a board gets elected.

We keep that one. Locally. Which is why search comes back in a blink instead of waiting politely on somebody else's server.

The second kind moves constantly, and it's the kind that gets associations sued.

Balances. Open violations. Work orders. Delinquencies. Statements.

We never keep those. Not for an hour. They're fetched live, from the accounting system, at the moment a document is generated.

A cached balance isn't a fast answer. It's a wrong one.

Printed, certified, and legally binding on the association.

Stable community records are kept locally while changing account records are read from the source when generating a document Two lifecycles for community dataKeep locallySlow-moving recordsFetch when neededCurrent account recordsUnitsOwnersBoardsSource → documentStore stable records. Read changing records live.
Speed on the left, because being a second out of date costs nothing. Truth on the right, because being a second out of date costs a closing.
Speed where it's safe. Freshness where the law requires it.

Now the part nobody demos.

An explicitly illustrative sync panel reports separate progress bars for five community record modules Sync progress · exampleAssociationsUnitsOwnersBoard membersEmployeesSeparate progress for each module
Five honest bars beat one spinner. Ask anybody who has watched a spinner for four minutes.

Syncs run on demand, or overnight on a schedule that wakes from nothing, sweeps, and won't accidentally run twice.

Every run compares what we hold against what's actually there, then applies the additions, the edits and the quiet removals. Four communities at a time. One bad record can't take down the batch.

Progress streams live, per module — associations, units, owners, board members, employees — not a spinner and four minutes of faith.

And every run keeps a record. Counts of what succeeded, skipped and failed, a plain-English summary, and a de-duplicated log of exactly what broke and why.

A partially succeeded sync report distinguishes saved records from a failed record requiring correction Sync run · examplePartially SucceededSuccessful recordsSavedFailed recordNeeds correctionFinish the rest. Report what needs fixing.
The least impressive status in the whole system, and easily the most honest one.

Yes, there is a status called Partially Succeeded.

A two-thousand-unit sweep that trips over one bad record should say so out loud, finish the other 1,999, and tell you which one to fix.

Pretending otherwise has never helped anybody at four in the morning.

Cache or don't cache was never the question.

The question is what a wrong answer costs.

Next: what all that syncing fills up — and why there's a whole screen for garden gates.

#PropTech · #HOA · #Automation