Topic domain driven design