References: Learning Record Store Architecture and Query Endpoints¶
<<<<<<< HEAD 1. Learning Record Store - Wikipedia - Definition, history, and architectural variants of the LRS, including the read/write split and the relationship between the LRS and external analytics tools.
-
Representational State Transfer (REST) - Wikipedia - Architectural style underlying the xAPI HTTP API, useful background for understanding the design of the five canonical endpoints and their idempotency properties.
-
Optimistic Concurrency Control - Wikipedia - The strategy xAPI uses for the State and Profile resources — etags + If-Match — explained alongside the alternative pessimistic approaches.
-
xAPI: An Introduction - Megan Bowe & ADL contributors - Advanced Distributed Learning - The LRS chapters cover endpoint semantics with example request/response pairs and explain the conformance distinction between an LRS and a generic xAPI store.
-
Designing Data-Intensive Applications - Martin Kleppmann - O'Reilly - Foundational text on the storage and consistency trade-offs every LRS implementer faces; chapters on replication, partitioning, and secondary indexes apply directly to LRS scaling decisions.
-
xAPI Communication Specification - ADL Net - The authoritative spec for the five LRS endpoints, including pagination via
more, the consistent-read header, and the rules for filtering onsince,until, andagent. -
Learning Locker GitHub - HT2 Labs / Learning Pool - Open-source MongoDB-backed LRS implementation. Reading the storage and query modules makes the architecture chapter concrete.
-
TRAX LRS GitHub - TRAX Project - Open-source PHP/MySQL LRS, useful as a small-scale comparison point to Learning Locker's NoSQL design.
-
Ralph LRS GitHub - France Université Numérique - Open-source Python/Postgres LRS designed for scalability, with documented benchmarks against ClickHouse-backed analytics stores.
10. SQL LRS Reference (DataShop) - Carnegie Mellon University - Reference SQL-backed LRS used in research, with publications detailing query optimization for very-large statement corpora.¶
-
Representational State Transfer - Wikipedia - The architectural style every LRS implements; covers resources, HTTP verbs, status codes, and statelessness — all of which xAPI inherits and constrains for the
/statementsendpoint. -
HTTP ETag - Wikipedia - The optimistic-concurrency mechanism the xAPI state and agent-profile endpoints use via
If-MatchandIf-None-Match. Critical for understanding how to avoid lost updates without pessimistic locking. -
Pagination - Wikipedia - Background on cursor-based pagination, the model xAPI's StatementResult
morefield implements. Explains why offset-based paging breaks for high-write event streams. -
Designing Data-Intensive Applications - Martin Kleppmann - O'Reilly Media - The most relevant single book for this chapter; storage engines, indexes, replication, and partitioning all show up directly in real LRS implementations.
-
RESTful Web APIs - Leonard Richardson, Mike Amundsen, Sam Ruby - O'Reilly Media - Resource modeling and hypermedia patterns that explain why the xAPI endpoint set (
/statements,/agents,/activities,/state,/about) is shaped the way it is. -
xAPI Spec Part Three — Data Processing, Validation, and Security - ADL Initiative - The authoritative section on LRS endpoints, query parameters, headers, voiding behavior, and conformance requirements that this chapter teaches you to implement against.
-
ADL LRS Conformance Test Suite - ADL Initiative - The reference test suite an LRS must pass to claim conformance. The single best resource for understanding what an LRS is required to do at the wire level.
-
TRAX LRS Documentation - TRAX - The open-source LRS used as a reference implementation throughout this course; the docs cover schema choices, store layout, and query indexing strategies.
-
Ralph LRS Documentation - France Université Numérique - Modern Python-based LRS with a clean architecture; the source is short enough to read end-to-end and clarifies the implementation choices the spec leaves open.
-
HTTP/1.1 Conditional Requests (RFC 7232) - IETF - The precise semantics of
If-Match,If-None-Match, and the 412 Precondition Failed response that xAPI's state endpoint relies on for safe concurrent writes.d2ecc9b (iframe updates)