Here’s a thought, why not just manage it yourself as an async resource?
EDIT: Ok, actually read the comment and I think that is exactly his suggestion. Maybe without the async part.
The way I would approach this is to create a resource which represents a bulk operation, maybe not even on the errand resource. I wouldn’t concern myself with what the operation is, the resource representation should give that information.
/bulktransactions/.....
That way your payload could be something like this:
{
"data": {
"type": "bulktransaction",
"attributes": {
"resources": [{"type":"errands"}],
"operations": [
{"id":123,"method":"PATCH", "payload":1},
{"id":124,"method":"PATCH", "payload":1},
{"id":125,"method":"PATCH","payload":1}
],
"payload":[
{"id":1,
"value":{
"data": {
"type": "errands",
"attributes": {
"dirty": true
}
}
}
}
]
}
}
}
You could return a location header for the bulk transaction resource itself, and get all the info and updates you needed from there.