Engine and Engine Dispatch 23


Released 2024-02-15


This is the first release of Engine 23. Here's what's new:


xAPI 2.0 Support

Engine's LRS now supports xAPI 2.0! Early adopters can send and receive xAPI 2.0 statements and make other requests that adhere to that standard.

Note: There is currently no way to launch xAPI-based content that uses xAPI 2.0, because cmi5 still requires xAPI 1.0 (for now), and Engine won’t accept 2.0 statements from Tin Can packages (the older type that contains a tincan.xml manifest). So working with the new standard version will primarily be through direct requests to the LRS.

LRS Improvements

For customers who have heavy usage of xAPI-based content and very large sets of xAPI data in Engine, reading statements from the database could be slow at times. With Engine 23 we have redesigned our database schema for storing xAPI data to alleviate some of these performance issues. On most database platforms we've seen significant improvements in read performance (around 50% faster for reading statements in many cases).

Note: If you are a customer with an existing xAPI dataset that is already large, upgrading to Engine 23 may require a bit more coordination and time than normal due to this change in schema. We'll work with you to make that go as smoothly as possible.

Streaming Video Support

In addition to MP4 video files, Engine can now deliver streaming video in either the widely supported HLS format, or MPEG-DASH, which works in many places except for mobile Safari. Both formats work by breaking videos up into short segments that may be encoded at different qualities, and delivering the best available quality for the learner’s available bandwidth.

This support comes in the form of allowing you to do a 'reference' import by providing us with the .m3u8 (for HLS) or .mpd (for MPEG-DASH) playlist file. Engine can then launch this in the VideoJS video player.

Note: Engine is not doing any automatic transcoding of video files into these formats. So you would have to already have these transcoded videos hosted and available and the m3u8 or mpd files will point to them.

Launch Specific Configuration

One thing that comes up occasionally is the need to override an Engine configuration setting only for a specific launch of a course. Maybe there is a value that needs to be different depending on the context of where the learner is launching (eg, mobile vs. desktop). Now you will be able to specify a collection of setting IDs and values when requesting the launch link and these will be used to override behavior at runtime. This will work for any setting that is defined as 'registration level' in the documentation.

Alternate Configuration Sources

Engine now supports the ability to read configuration values from Hashicorp’s Vault and Consul services. Hashicorp’s Vault is a popular service for storing sensitive data, such as auth tokens or passwords. Consul is (among many other things) a service for storing other sorts of non-sensitive data. Engine 23 ships with plugins for reading configuration values from those services, which can simplify deploying clusters of Engine app servers that need to share settings.

Note: this is currently only available on the Java version of Engine. It may be possible to create a plugin to support this on the .NET version of Engine, but we do not currently provide that.

Alternate Queue Implementations

With the Webhook feature of Engine, if we fail to send a notification to your endpoint, we will queue it for retrying. Engine has a SQL-based queue that serves as the default implementation of this. However, now you have the ability to implement a plugin to substitute your own implementation of the queue, if desired. Out of the box, the Java version of Engine has a plugin implementation for using Amazon SQS that can be used. You can read more about configuring this in the main documentation


Note: There are a number of potentially breaking changes in Engine 23. If you are upgrading from an older Engine please check out this document for details on those.

Was this article helpful?
1 out of 1 found this helpful
Have more questions? Submit a request
Powered by Zendesk