docs: public void internalNodeRemoved( String internalNodeKey ) {
          if (this.snapshot.get().containsProjectionForInternalNode(internalNodeKey)) {
              // identify all the projections which from this internal (aka. federated node) and remove them
              synchronized (this) {
                  Snapshot current = this.snapshot.get();
                  Snapshot updated = current;
                  for (Projection projection : current.getProjections()) {
                      if (internalNodeKey.equalsIgnoreCase(projection.getProjectedNodeKey())) {
                          String externalNodeKey = projection.getExternalNodeKey();
                          removeStoredProjection(externalNodeKey);
                          updated = updated.withoutProjection(externalNodeKey);
                      }
                  }
                  if (current != updated) {
                      this.snapshot.compareAndSet(current, updated);
                  }
              }
          }
      }