docs: @Override
      protected VoltMessage instantiate_local(byte messageType)
      {
          // instantiate a new message instance according to the id
          VoltMessage message = null;
  
          switch (messageType) {
          case INITIATE_TASK_ID:
              message = new InitiateTaskMessage();
              break;
          case INITIATE_RESPONSE_ID:
              message = new InitiateResponseMessage();
              break;
          case FRAGMENT_TASK_ID:
              message = new FragmentTaskMessage();
              break;
          case FRAGMENT_RESPONSE_ID:
              message = new FragmentResponseMessage();
              break;
          case PARTICIPANT_NOTICE_ID:
              message = new MultiPartitionParticipantMessage();
              break;
          case COALESCED_HEARTBEAT_ID:
              message = new CoalescedHeartbeatMessage();
              break;
          case COMPLETE_TRANSACTION_ID:
              message = new CompleteTransactionMessage();
              break;
          case COMPLETE_TRANSACTION_RESPONSE_ID:
              message = new CompleteTransactionResponseMessage();
              break;
          case IV2_INITIATE_TASK_ID:
              message = new Iv2InitiateTaskMessage();
              break;
          case IV2_REPAIR_LOG_REQUEST:
              message = new Iv2RepairLogRequestMessage();
              break;
          case IV2_REPAIR_LOG_RESPONSE:
              message = new Iv2RepairLogResponseMessage();
              break;
          case REJOIN_RESPONSE_ID:
              message = new RejoinMessage();
              break;
          case REJOIN_DATA_ID:
              message = new RejoinDataMessage();
              break;
          case REJOIN_DATA_ACK_ID:
              message = new RejoinDataAckMessage();
              break;
          case FRAGMENT_TASK_LOG_ID:
              message = new FragmentTaskLogMessage();
              break;
          case IV2_LOG_FAULT_ID:
              message = new Iv2LogFaultMessage();
              break;
          case IV2_EOL_ID:
              message = new Iv2EndOfLogMessage();
              break;
          case DUMP:
              message = new DumpMessage();
              break;
          case MP_REPLAY_ID:
              message = new MpReplayMessage();
              break;
          case MP_REPLAY_ACK_ID:
              message = new MpReplayAckMessage();
              break;
          case SNAPSHOT_CHECK_REQUEST_ID:
              message = new SnapshotCheckRequestMessage();
              break;
          case SNAPSHOT_CHECK_RESPONSE_ID:
              message = new SnapshotCheckResponseMessage();
              break;
          case IV2_REPAIR_LOG_TRUNCATION:
              message = new RepairLogTruncationMessage();
              break;
          case DR2_MULTIPART_TASK_ID:
              message = new Dr2MultipartTaskMessage();
              break;
          case DR2_MULTIPART_RESPONSE_ID:
              message = new Dr2MultipartResponseMessage();
              break;
          case DUMMY_TRANSACTION_TASK_ID:
              message = new DummyTransactionTaskMessage();
              break;
          case DUMMY_TRANSACTION_RESPONSE_ID:
              message = new DummyTransactionResponseMessage();
              break;
          case Migrate_Partition_Leader_MESSAGE_ID:
              message = new MigratePartitionLeaderMessage();
              break;
          case DUMP_PLAN_ID:
              message = new DumpPlanThenExitMessage();
              break;
          case FLUSH_RO_TXN_MESSAGE_ID:
              message = new MPBacklogFlushMessage();
              break;
          default:
              message = null;
          }
          return message;
      }