I've done a guest post on the blog of my coworkers. You can check it out here https://swifting.io/blog/2017/02/05/35-structs-alternative-using-swift-protocols-to-enhance-safety-of-core-data-access/