Commonly, we are asked for support for endpoints that support 0(x) or 0(n) numbers of deletions. This article is written to provide an explanation of why these usually aren't supported.
- Delete a Channel and hard-delete all messages
- Delete an application and all of its data
- Delete a Feed and all of the activities
- Delete a user and all of their activities
- Delete an array of users and all of their messages
Why we don't support these operations
There are three main reasons why we don't support 0(x) or 0(n) deletions.
- Deleting records from databases can be an expensive operation. This means that as an API provider, we do need to limit these deletions in some way in order to provide a competitive product.
- Deletions need to happen in a synchronous manner and be fast.
- There is no way to restrict the number of records that are deleted for many of these operations. With a single deletion endpoint, such as deleting a message, or batch fetching activities, we know that there will be 0(1) or 0(n) operations respectively, where we set n to 100. However, for the request to delete an app and all of the messages, this can represent 0(n) operations where n is equal to the number of messages sent in an app, which could be millions or more.