code: @Override
  	public Mono<MongoSession> createSession() {
  
  		return Mono.justOrEmpty(this.maxInactiveIntervalInSeconds) //
  				.map(MongoSession::new) //
  				.doOnNext(mongoSession -> publishEvent(new SessionCreatedEvent(this, mongoSession))) //
  				.switchIfEmpty(Mono.just(new MongoSession()));
  	}
docs: Creates a new {@link MongoSession} that is capable of being persisted by this {@link ReactiveSessionRepository}.
  <p>
  This allows optimizations and customizations in how the {@link MongoSession} is persisted. For example, the
  implementation returned might keep track of the changes ensuring that only the delta needs to be persisted on a
  save.
  </p>
  
  @return a new {@link MongoSession} that is capable of being persisted by this {@link ReactiveSessionRepository}