Synchronising data

I hold various bits of data on various computers.

Various devices

For example, I keep a shopping list on my phone. Through the magic of the internet, I keep the same shopping list on my laptop, and also my desktop, and also every1 other computer in the entire2 world.

Any changes I make on one computer appear on all the others. This even works when I’m not connected to the internet. The changes get spread around as soon as I reconnect. This isn’t important to everyone, but it’s really important to me because I often add things to my shopping list when I’m on the tube.

We can say that all of these devices stay synchronised with each other.

Various people

Multiple computers can edit the shopping list at the same time. They don’t need to take turns.

This is most useful for when I want to collaborate with someone. I often want to add things at the same time as my partner.

Both of our lists stay synchronised with one another. Even if my internet cuts out, they still sync up eventually.

The synchronisation that happens here is exactly the same as before. It just happens faster - in front of your eyes.

But where is it?

Where is the data really? It’s not really on my phone, or my laptop, or my desktop, or my partner’s phone. It’s actually on someone else’s computer, which we call the cloud.

This is good. I don’t want it on my own computer! I want it to be on a server somewhere safe. I want to pay people money to keep it running all the time.

If they turn out to be bad eggs, or untrustworthy, I can move my data to another server.

But how does it work?

When I edit my shopping list, how do my changes spread around to all the other computers? It sounds simple - just apply those same edits on all of them.

But unfortunately, it’s really hard because the other computers might have edits of their own on them.

There’s a whole field of research trying to solve these problems. It’s complicated and slow. And it seems to require a different kind of solution for every kind of program.

Just ask

Remember, you can just ask.

When you encounter one of these problems, don’t try to figure it out. Just ask the user.

Even when we’re collaborating live, just ask!

It’s like my partner says…

I don’t like it when technology tries to think like me. I’d rather learn its rules, and solve it myself.


Back to the wikiblogarden.

  1. as long as it can run google keep. 

  2. as long as you can occasionally get internet connection.