A Curious Mind
#tastic

Eventual Consistancy

Sunday, June 15, 2008 5:57 PM

Eventual consistency. Given enough time, the system will become consistent.

When no updates occur for a 'long' period of time eventually all updates will propagate through the system and all of the replicas will be consistent.

Where I work the app that was driving me nuts at work was our General Ledger. It would take up to three days to become consistent. It wasn't until I started to explore the topic of EC that I started to build a mental model that could handle the GL being inconsistent.

It can be very helpful to talk to your users about consistency, and what does it mean when they say they need it now. Is half a second acceptable? This is where the 'long' from before can be a bit funny. To a computer half a second is a long time 500 milliseconds (a 2 gigahertz processor cycles about 2,000,000,000 instructions a second, 0.5 seconds is 1,000,000,000 instructions [the math may not be exactly right, but the I think the point is still made])

Another interesting question for me is "What if I can give you consistency today but for yesterdays data?" At work, we have a lot of processes that aren't quite ready for messaging, so some of our processes will be upgraded and others will be quite legacy. So its interesting to see how these two styles come together. Users also have a hard time seeing the shift that can be made by embracing more of this Event Driven style.

-d


Feedback

# re: Eventual Consistancy

This is a different take of EC than I was originally thinking about. I have actually been on this path for awhile, but I didn't originally have a name for it.

Take for example the groups stuff. It may not be available the first day, the second day, or the third day. It may not be available for weeks. But eventually, eventually it will be there.

And when it comes we'll pick it up and deliver the messages. And everything will be right with the world again. :D

I think I am getting this influence from Greg Young. :) 6/18/2008 12:52 AM | Fervent Coder

Post a comment





 

Please add 6 and 4 and type the answer here: