Many Luminate Online Web Services operations involve the upload or download of potentially large numbers of data records. For example, a middleware client may add several thousand new constituent records to Luminate Online in a single synchronization session. A client may also download thousands of new members from Luminate Online that signed up for an online campaign.
To lower the risk of network timeouts and to better balance server utilization, Luminate Online limits the size of both requests and responses to a relatively small number of records. No more than fifty records may be uploaded (created, updated or deleted) in a single request. In the other direction, no more than two hundred records may be downloaded at a time.
Clients must break up data transfers into pieces that fit these constraints. For uploads, the client simply makes as many requests as necessary until all the records have been transferred. For example, if a client wants to add 170 new constituents to Luminate Online, it needs to make 4 sequential requests (the first three containing 50 records each and the last one containing 20 records).
For downloads, the client needs to keep track of which records it has already downloaded. It does this by including a page number and page size in each request. The client starts each download by requesting page 1, and then increments the page number until no more records are returned.