How is the caller of popDirty supposed to interpret the URL? It seems like you are baking in the assumption that the only kind of update being done here are HTTP cache purges. What if something wants to e.g. cache structured data from some MCR slot in memcache, and needs that purged on update? IMO it would make more sense to provide a callback instead of an URL. You would end up with something not unlike the current job queue, except dependency tracking and the generation of dependent jobs would happen outside the queue, which would remove much of the complexity and the job count explosion.
Topic on User talk:Daniel Kinzler (WMDE)/DependencyEngine
Appearance