One innovative feature of xAPI is to enable the sharing of data between Learning Record Stores (LRSs). It’s possible that two LRSs, perhaps from different vendors, can be integrated together by configuration in a matter of minutes. If you’ve ever been involved in an LMS integration project and seen the work involved, you’ll realize just how groundbreaking that is.
Let’s look at why sharing statements is important and the different approaches that can be followed.
Why share statements?
LRSs owned by different stakeholders
One use case for sharing statements that’s already happening in the wild is product vendors maintaining their own LRS and also sending the data to the customer’s LRS. This might include authoring tool vendors, content vendors, LMS vendors, indeed any vendor with a product that generates statements.
Getting data out of or into an LMS
An LRS can either sit inside an LMS or be a separate product outside of it. Some organisations may have both an LRS inside their LMS and an external LRS that connects to a variety of different data sources. In these cases there is a need to share statements between the LMS, embedded LRS, and the external standalone LRS.
Migrating to a new system
When choosing a shiny new learning platform, it can be tempting to think it will last forever. All things come to an end though, and having a plan to get your data out when the time comes is vitally important. If you store all your learning records as statements in an LRS, statements can be shared with the new LRS when the time comes, making that part of the data migration incredibly straightforward. You then only have to worry about data not stored in the LRS! This is an important use case of statement sharing.
Pushing statements to a non-LRS system
There are a number of systems other than LRSs that use statements in some way to do some thing. Here are some examples:
- A business information tool might use information contained in statements alongside other data to deliver business intelligence and provide other functions.
- A Training Delivery System might deliver performance support materials to learners at the point of need based on their activity as tracked in statements.
- A credentialing, certification or badging tool might award credentials, certificates or badges based on achievements reported in statements.
Multiple LRSs within an organization
There are a number of reasons why an organization might have multiple LRSs. For example:
- Following a merger of two companies, where both companies had their own LRS.
- In a large organization with autonomous departments that have their own systems.
- An organization spread across multiple sites and/or countries.
- An organization including sites or operations with limited or intermittent connectivity such as a disaster zone or a ship.
How to share statements
One way sharing
One approach is to have one LRS share its statements with another. This means that all statements in one LRS are transferred to another, but any statements already in the second LRS are not transferred back to the first. This can either be achieved by one LRS sending statements to another, or by one LRS querying another for statements.
Two way sharing
An extension of one way sharing is to additionally share statements in the other direction such that all statements in each LRS are shared with the other. This can be achieved by:
- Both LRSs sending their statements to the other.
- Both LRSs regularly querying the other LRS to fetch statements.
- One LRS sending its statements to the other LRS and also querying that LRS for statements.
It’s also possible to share statements using a 3rd party, man-in-the-middle application that sits outside the LRSs. This kind of application is configured to fetch statements from particular LRSs and send them on to other LRSs. The application doesn’t necessarily store the statements itself, it just fetches them and sends them on to their required destination.
Download and upload
Statements can be shared between LRSs by downloading the statements as a JSON document from one LRS and uploading it to another. This method is particularly valuable for transferring statements where the LRSs are not able to directly connect to one another due to connectivity issues or security restrictions.
Need more help with how to share data across LRSs? Get in touch.