code: public static BatchFraction createDefaultFraction() {
          final BatchFraction fraction = new BatchFraction();
          final InMemoryJobRepository<?> jobRepository = new InMemoryJobRepository<>(DEFAULT_JOB_REPOSITORY_NAME);
          fraction.inMemoryJobRepository(jobRepository)
                  .defaultJobRepository(jobRepository.getKey());
  
          // Default thread-pool
          final ThreadPool<?> threadPool = new ThreadPool<>(DEFAULT_THREAD_POOL_NAME);
          threadPool.maxThreads(ProcessorInfo.availableProcessors())
                  .keepaliveTime("time", "30")
                  .keepaliveTime("unit", "seconds");
          fraction.threadPool(threadPool)
                  .defaultThreadPool(threadPool.getKey());
  
          return fraction;
  
      }
docs: Creates a default batch fraction.
  <p>
  Uses an {@code in-memory} job repository with the {@linkplain #DEFAULT_JOB_REPOSITORY_NAME default name}.
  </p>
  
  <p>
  Uses a default thread-pool with a calculated maximum number of threads based on the available number of processors. A
  keep alive time of 30 seconds is used for the thread-pool.
  </p>
  
  @return a new default batch fraction