openedx / wg-data

Tracking work and progress of the Open edX Data Working Group
1 stars 2 forks source link

Discovery and proposal for http endpoint for recieving events #9

Closed e0d closed 1 year ago

bmtcril commented 1 year ago

I've looked at several LRSs, with the following criteria in mind:

After eliminating closed-source or SAAS-only options I was left with 3, and the clear winner was Ralph by FUN. As we gather all of the technology choices for our recommended community deploy, this will be socialized more.

Read on for more details on the investigations...

Learning Locker Open Source

Learning Locker offers a compelling paid product, but the open source version seems to lack support and community to help with issues (their main support channel had no answered questions in months). Production and even dev configuration is fairly complicated, featuring Mongo servers in a replica set as the data backend. There were issues running it locally that I was able to work through, but if anyone had been answering support questions it would have been a lot easier.

As Mongo is a technology that we've been attempting to move away from, and the overall support for the open source version this landed low on my list.

SQL LRS

SQL LRS is FOSS and uses with PostgreSQL or SQLite as a data store. It is very standards compliant and has a whole ecosystem of xAPI related products that we may also be interested in. The team seems very small, maybe one or two people, and didn't seem to have a community support channel aside from Github Issues.

I am loathe to add Postgres to the mix of Open edX technologies as it can be something of a challenge to configure for scale of this type and I don't think that a transactional database is the way to go for this style of data, at least for our use cases. Overall it was easy to set up and run as a Tutor plugin, and I think would work for small scale installs.

Ralph

Ralph is an LRS being developed by Open edX community members FUN. It provides some Open edX specific functionality that alone would make it a fairly obvious choice for our recommendation - especially the ability to replay old tracking log files and transform them into xAPI statements, which would allow operators to bootstrap their xAPI based databases. It can read and write from various data sources, and can store xAPI statements in Elasticsearch or MongoDB currently (though the developers are open to other data stores).

Ralph is still in heavy development, but is a pretty clear winner for having some great, unique functionality, flexibility of deployment, and a responsive team already in our community. As above, Mongo is something we'd like to move away from, and Opensearch has licensing issues we'd like to avoid, so we would like to work with FUN to add support for another backend.