Keeping a live copy of all of this info in memory goes against the fairly stateful model we've established so far.  We should be writing state to disk (which might eventually be another store), and then regenerating config from disk when we need it.  It's fine to track config changes and only dispatch them at specific intervals, but this is a lot of complexity in the daemon that really can be reduced to two phases - api -> disk, then disk -> config.