anchor.diff:           |
            V
   +------------------+
  +|  @BeforeGroup    |
  +|     methods      |
  ++------------------+
  +         |
  +         V
  ++------------------+
   |   Perform task   |
   |   described in   |
   |     pipeline     |
  ++------------------+
  +         |
  +         V
  ++------------------+
  +|   @AfterGroup    |
  +|     methods      |
   +------------------+
            |
            V
  
positive.code:                              |
                               V
                  +---------------------------+
                  |       Driver node         |
                  |    (Cluster manager)      |
                  |---------------------------|
                  |     Partition plan        |
                  |     computation(2)        |
  
negative.code: They can all use `@PostConstruct` and `@PreDestroy` to initialize/release
  some underlying resource at the beginning/end of the processing.
  
  IMPORTANT: in distributed environments class' constructor will be called on cluster manager node, methods annotated with
  `@PostConstruct` and `@PreDestroy` annotations will be called on worker nodes. Thus, partition plan computation and pipeline task
  will be performed on different nodes.
  
  