Do not erase

I was very surprised to note that in paper based offices there was nothing like erase a mistake or throw out the original, it was always an append over the previous ones. Be it land records, mark sheets or accounts. The end state was always calculated and consolidated than written, erased and rewritten.

Why do you need an eraser when you can always create a new version?

This is very different in the software world, it is always wipe out old values and put the latest unless there are transactions which have to be recorded each time they happened. In real world everything happens by events yet in software we were always saving end states until recent times where having a common shared state became a huge problem when the systems started scaling and no one can have a claim to be the source of truth.

The problem with saving the projections is that we have to constantly erase and rewrite the projected truth, it was inconvenient in paper based ones so people stuck to append only. Since software makes erasing and writing easy, projections were always created during events instead of storing the events.

Why this becomes a problem? The problem is when there are lots of actors and they have to share the truth between them. Not everyone is interested in the entire projection and transporting that data also becomes painful. The solution is to keep events/transactions as it is and let each of the actors compute their projections when they want.

This is how we work in the real world, the events keep happening whether we observe or not, we try to make sense of it only when we are interested in it to do something with the events; else it just gets journaled somewhere unless someone wants to go through them. I am glad that more and more technology solutions are taking a cue from the biological and social world which had taken 100s and 1000s of years to evolve, instead of discarding them as old way of doing things.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s