code: private Observable<Indexable> processCompletedTaskAsync(final TaskGroupEntry<TaskItem> completedEntry,
                                                              final InvocationContext context) {
          reportCompletion(completedEntry);
          if (isRootEntry(completedEntry)) {
              return Observable.empty();
          } else {
              return invokeReadyTasksAsync(context);
          }
      }
docs: Handles successful completion of a task.
  <p>
  If the task is not root (terminal) task then this kickoff execution of next set of ready tasks
  
  @param completedEntry the entry holding completed task
  @param context the context object shared across all the task entries in this group during execution
  
  @return an observable represents asynchronous operation in the next stage