When programmers talk about entities, they are usually talking about a concept or something that has an existence within a system. Sometimes it’s a class, sometimes it’s a library or dependency, or it may be something like WordPress post types.
If WordPress is to be thought of as an application foundation (versus a framework), it’s important to think about certain features in ways that can be treated as entities. In the example above, a post type is just that.
When custom post types were introduced, it gave us a way to introduce something other than pages and posts into the application. Now we can implement any concept – like an event – and treat it as its own entity within the system.
But when all is said and done, it’s all saved in the posts table. And that’s fine because software development is all about abstraction. As we implement WordPress post types, we’re implementing an abstraction on top of the idea of posts.