Sorting event types into state and occurrence before writing a handler is the part I will reuse. One edge for fetch-on-notify is a late event for an object that has since been deleted. Depending on the provider, the fetch may return a 404, and a worker that treats it as a transient error will keep retrying forever. Mapping 'not found' to a deleted state explicitly is worth the extra branch.