We are using the Canvas REST API to synchronize users into our application.
Every 6 hours we are requesting:
- all users
- all coursers
- all section
- all enrollments
for 129 different schools/clients.
We then determine ourselves what was changed update those changes to our database.
While not ideal, this works.
We are however running in to problems with a new client.
This client has a huge amount of users (up to 70.000 per course) and lots of courses.
And wants to have (near) realtime updates, our current implementation is not sufficient to allow for this.
Even if we would just continuously synchronize all data, the time required to fetch and parse all that data is going to take to long.
We are looking at live events but as this is focussed towards analytics it fires massive amounts of (for us) un-usable events (especially user update events), -also.. we would like to avoid stream-processing if possible.
Ideally we would love to be able to add a filter to the existing endpoints:
last_update > timestamp
Is there any way where we can get to near realtime synchronization without causing excessive amounts of traffic?
*edit: typo