

Serving configuration data at scale with high availability - rubikscube
http://engineering.pinterest.com/post/112895488589/serving-configuration-data-at-scale-with-high

======
latch
Easy to play armchair quarterback, but if each server is storing the complete
list, why not just use a queue to push out the change?

    
    
        for {
         message = blockWaitingForMessage()
         if message.action == "add" {
           lock()
           blacklist[message.domain] = true
           unlock()
         } 
        }
    

On startup you'd need to bootstrap a server. Use a database as your source of
truth, and wrap an internal-only api to fetch all domains.

~~~
th0br0
Because this way you only read the data in once and don't need to make any
changes to it which allows you to pick different data structures.

~~~
hatred
May be.

I read the article twice but had the exact same reaction on both occasions
that somehow we used a "big" bat to kill a small ant when some easier
solutions would have sufficed.

Though, it's looks very likely that I might be missing something really
minuscule.

