One developer's World of Warcraft server refactor reveals why separating data from orchestration changes everything