The new Dash API was built to provide transparent access to the large collection of objects which comprise the Dash system.
Where it excels:
-
Tasks centered around single objects, eg. fetch a customer and some of their relationships - family members, registrations, invoices
-
Tasks which require filtering of a collection. eg. fetch all events for a given date range.
Where it performs poorly:
-
Tasks which require fetching thousands of records. When this is the primary object of the query, this is mitigated through paging. When the large collection is a relationship of a primary object, the collection is not paged and can cause out of memory exceptions and slow response times (will see improvements later)
-
Batch create & update. We don't currently accept multiple objects in POST and PATCH requests. This requires each object be a separate request which can make batch updates slow and unwieldy.