Short version in the API documentation: Render API overview: Caching
The parent page explains cacheability in general. This looks in detail at how render arrays bubble cacheability.
Drupal 8's Render API automatically creates placeholders of highly dynamic parts of a page, to have the best possible cacheability (i.e. the
"Render Arrays" or "Renderable Arrays" are the building blocks of a Drupal page. A render array is an associative array which conforms to
or: how Drupal renders pages