In the previous two chapters, we discussed and our options as Drupal 8 module developers for modeling and storing data in Drupal 8. We also saw some examples of how to use things such as the State, Configuration, and Entity APIs, going to greater lengths with the latter by using it to build something useful. One of the key takeaways from these chapters is that--compared to Drupal 7, at least--the need for custom database tables and/or direct queries against these and the database has become minimal.
The Entity system is much more flexible and robust, the combination of configuration and content entities providing much of the needs for storing data. Moreover, the Entity query and loading mechanisms have also made finding them easy.Odds are, this is enough for most of your cases.
Furthermore, storage subsystems such as the State API (key value) and UserData have...