Current situation or problem:
In order to facilitate migrations in a timely and efficient manner, the Organizations Storage module needs to have batch APIs. POSTing, PUTting and DELETEing records one HTTP request and database commit at a time is unusably slow for large data sets.
- Bulk Create/Update for Organizations
- Bulk Delete (with CQL query parameters) for Organizations
- Bulk Create/Update for Contacts
- Bulk Delete (with CQL query parameters) for Contacts
Out of scope:
Batch APIs for addresses, phone number, urls and categories are not required. The anticipated order of magnitude for these record sets is not sufficient to require batch handling, and they appear to be deprecated in their individual APIs anyway.
- Initial Data Migration, including iterative data load/delete
- Updating with an external source of truth
In order for these APIs to be effective, they need to bypass the business logic and go directly to the storage module. Any BL-level logic will need to be accounted for by the user; documentation should reflect this.