3. Use Liferay as a foundational platform

Date: 2018-05-22

Status

Accepted

Context

Valamis development started in 2013 so many decisions predates these ADRs. Some of those are still valid, some deprecated. Most important foundational architecture decisions are listed as ADRs.

Decision

Liferay was chosen as a platform.

Consequences

Current Liferay-based foundation architecture in a nutshell:

  • Valamis is built on Liferay and standard servlet containers
  • Many Liferay modules types are used (portlets, themes, hooks)
  • Everything is deployed within same servlet container but Learning Record Store (LRS) can be an external service
  • The Valamis core is coded with [Scala]
  • Frontend JavaScript UI is (mainly) implemented in Backbone.js/Marionette.js/jQuery over Java portlets (JSR 286).
  • Database agnosticism is provided through abstractions. (Slick, Liferay's own)

Liferay is a customizable Java portal platform that provides functionality like CMS, authentication, development APIs and many integration possibilities. It makes it flexible choice for intra/extranets and websites. Valamis can then leverage the rich feature set of Liferay.