code: @Override
      public synchronized void start() {
          if (running) {
              return;
          }
  
          checkState(raftAgent != null);
          checkState(initialized);
  
          raftAgent.start();
  
          running = true;
      }
docs: {@inheritDoc}
  
  Prior to calling this method, the underlying {@link RaftAgent}
  <strong>must</strong> be set using {@link DistributedStore#setRaftAgent(RaftAgent)},
  and this component <strong>must</strong> be initialized using {@link DistributedStore#initialize()}.
  Following a successful call to {@code start()} subsequent calls are noops.
  
  @throws IllegalStateException if either
  {@link DistributedStore#setRaftAgent(RaftAgent)} or
  {@link DistributedStore#initialize()} have not been called