How do I correctly add cache information for breadcrumb parts?
Look at \Drupal\book\BookBreadcrumbBuilder::build() for an example. You'll want to add the cacheability metadata (or at minimum the cache tags) of the node/menu item John Doe.

So:

$breadcrumb-&gt;addCacheableDependency($entity);




You could have easily figured this out yourself: you're building a \Drupal\Core\Breadcrumb\Breadcrumb object… which implements RefinableCacheableDependencyInterface, and that interface lists all things related to cacheability.

I highly recommend you read https://www.drupal.org/developing/api/8/cache and all documentation it points to.