title: Context pattern? Why does Core Data need it?
body: <p>I'm still fairly new to Core Data and am trying to understand why it requires the passing around of a NSManagedObjectContext. As I understand it, passing the context is needed so that multiple threads don't affect the same context, but I was also under the impression that this pattern is sometimes considered an antipattern, as noted <a href="http://misko.hevery.com/2008/10/27/pass-around-ginormous-context-objects/" rel="nofollow">here</a>. </p>
  
  <p>Could Core Data theoretically be implemented in a thread safe way that would avoid using this pattern? How do other ORMs (such as Ruby's ActiveRecord for example) avoid this pattern? For example, couldn't CoreData implement a per-NSManagedObject saving method such as in this <a href="http://bikepress.tumblr.com/post/3948003272/simplifying-core-data-part-i" rel="nofollow">extension</a>. This light framework doesn't handle multithreading, but couldn't NSManagedObjects use some kind of internal GCD queue(s) to support it, with an internal context they don't expose? </p>
  
  <p>Sorry if I'm missing anything major.</p>