Git branch per region. Missing messages can then be requested for the region and merged. Distributed git is the best way to think about it.