Eventual consistency and what does it apply to?
Is eventual consistency supposed to apply to all API calls or only to statements? Based on where the "X-Experience-API-Consistent-Through" header is listed my current read is that it only applies to statements and the other document APIs are expected to be immediately consistent, though I would expect that to be problematic for any LRS hoping to do eventual consistency. Implementers would need to use two different kinds of data stores to implement it. (Where I'm using generic "kind" here, realizing that they may use the same software, they'd just have to use it differently.)
Any reasonable lag might cause problems for the CMI5 learner preferences doc, which is set by the LMS immediately prior to launch and picked up by the AP when launched.
Sent from Samsung Mobile
-------- Original message -------- From: "Brian J. Miller" [email protected] Date: 21/08/2014 13:12 (GMT+00:00) To: adlnet/xAPI-Spec [email protected] Subject: [xAPI-Spec] Eventual consistency and what does it apply to? (#483)
Is eventual consistency supposed to apply to all API calls or only to statements? Based on where the "X-Experience-API-Consistent-Through" header is listed my current read is that it only applies to statements and the other document APIs are expected to be immediately consistent, though I would expect that to be problematic for any LRS hoping to do eventual consistency. Implementers would need to use two different kinds of data stores to implement it. (Where I'm using generic "kind" here, realizing that they may use the same software, they'd just have to use it differently.)
— Reply to this email directly or view it on GitHub.
As written, we only allow for eventual consistency for statements, so we should be good to issue PUTs and then immediate GETs on documents in the conformance test and in general.
There is potentially more processing to do when statements come in than for documents, so it seems reasonable to make the allowance for statement processing to be queued/asynchronous but not make the same allowance for documents.
Notes from 01/10/14: we should add some clarity that this only applies to statements API as other APIs are expected to be immediately consistent.