There is no reason you cannot store it in Core Data as well. Personally, if I was already using Core Data to store data then I would use it to store all of the data so that I have one persistence interface to work with and not trying to align multiple different interfaces.
Update 1
I see where you're taking it. So instead of sending containsObject to a set of UUIDs in memory, you suggest that I use a fetchRequest to check for the existence of an entity in the store with that UUID? Since this check has to be performed on every event that comes in, what can I do to ensure that it's performant?
Do a count instead of a fetch. If the count is >= 1 then you already have that event. If it is zero you do not. Performing a count against the persistent store is very fast.
Second, use a pre-created NSFetchRequest (and NSPredicate) and keep it between checks. That will decrease the amount of time it takes to build your query.