code: @SuppressWarnings("unchecked")
      public synchronized EventBus bind(final SysEventId sysEventId, final SysEventListener<?> sysEventListener) {
          boolean async = isAsync(sysEventListener.getClass());
          return _bind(async ? asyncSysEventListeners : sysEventListeners, sysEventId, sysEventListener);
      }
docs: Bind an {@link SysEventListener} to a {@link SysEventId}.
  
  If `@Async` annotation is presented on the `sysEventListener`'s class,
  it will bind the listener to the async repo, and it will be invoked
  asynchronously if event triggered.
  
  **Note** this method is not supposed to be called by user application
  directly.
  
  @param sysEventId
  the {@link SysEventId system event ID}
  @param sysEventListener
  an instance of {@link SysEventListener}
  @return this event bus instance