重构：分离出消息引擎，备份