xAPI-Spec icon indicating copy to clipboard operation
xAPI-Spec copied to clipboard

Eventual consistency and what does it apply to?

Open brianjmiller opened this issue 11 years ago • 3 comments

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.)

brianjmiller avatar Aug 21 '14 12:08 brianjmiller

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.

garemoko avatar Aug 21 '14 12:08 garemoko

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.

bscSCORM avatar Aug 21 '14 12:08 bscSCORM

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.

garemoko avatar Oct 01 '14 18:10 garemoko