private void handleRecursively(DomainEventMessage event) {
   handle(event);
   Iterable<? extends EventSourcedEntity> childEntities = getChildEntities();
   if (childEntities != null) {
     for (EventSourcedEntity entity : childEntities) {
       if (entity != null) {
         entity.registerAggregateRoot(this);
         entity.handleRecursively(event);
       }
     }
   }
 }