Problem/Motivation
Drupal has the ability to auto-placeholder render arrays that use #lazy_builders depending on certain conditions.
However, there are other benefits to using placeholders more, especially once #3493911: Add a CachedPlaceholderStrategy to optimize render cache hits and reduce layout shift from big pipe lands.
Once we have #3394423: Adopt the Revolt event loop for async task orchestration, placeholders will be the main high-level task that is managed by the event loop. Once we have some async support, even non-async placeholders make it more useful, because they provide more things that can be done while waiting for async queries to come back.
Placeholdered blocks have their own render cache items, this means that if a block appears on every page, its HTML won't be cached as part of dynamic_page_cache, saving cache space, see #3493911: Add a CachedPlaceholderStrategy to optimize render cache hits and reduce layout shift from big pipe for details. Similar it should reduce the number of cache tags that end up bubbled up to the main dynamic_page_cache item.
If we're able to do #3496369: [PP-1] Try to multiple load path aliases without the preload cache and related issues, this will increase the number of path aliases or entities that can be loaded at once.
If we're able to do something like #2989324: Allow CSS to be added at end of page by rendering assets with placeholders, then CSS and JS aggregates will become per-placeholder, allowing for better aggregate cache hit rates.
Steps to reproduce
Proposed resolution
Add #create_placeholder => TRUE to several block definitions.