Drupal 8 core has entities like node, user, taxonomy..etc., which helps to process different types of data based on their usage.
Likewise, we can create custom entity to maintain structured data like customer data, inventory data, products data..etc.,
When is Custom entity needed in Drupal 8?
1) When there are requirements for huge number of fields.
2) When exposing data to different applications. The "UUID" generated will be used as reference for each entry to other applications.
3) In order to reduce load on drupal core database, large volume of data with revisions can be handled through custom entity mapped to external database.
4) For development of custom applications by leverage the available drupal services and associated classes.
Tips: To enrich the custom entity usage, enable Revisioning and View mode options.