Maybe using a database such as SQLite. Could be useful for offline applications. If we didn't want to include a cache in this project, we could still make sure that our objects are easy to cache and that a cache can optionally be added to the data management object.
Looking ahead, this project going to support caching map data.
Caching data seems not necessary for every apps. But it is an important feature for many apps which this project relate to. So, in my opinion, it should be optional.
Yes, I agree. That's why it would be nice to work with protocols, as it allows other developers to optionally add their own cache. I haven't worked on this yet, though, because I feel like the first point (having a dedicated object for relations lookup) needs to be addressed before we can move on to caching.
From issue #3:
Looking ahead, this project going to support caching map data.
And it will be optional for now.