Skip to content

a multi docker architecture (deprecated)

dasch124 edited this page Dec 14, 2020 · 1 revision

a multi-docker architecture approach (deprecated)

NB this page is only kept for reference; the approach described here is deprecated in favour of the current architecture

See the docker-path branch

Docker

Instead of using one servlet container and therefore one JVM this repository uses one docker container for each of the two services needed: Orbeon and exist db. The third original servlet editor.war (the trunk/mermeid subdirectory) is incorporated into exist and uses XQuery and XSL to provide the same function as the original JSP based approach.

It is easier to use standard container based builds of exist db using this approach.

Using exist db to serve the XForm files

exist db is able to resolve XInclude directives the same way the original setup does this using JSP and standard JDK services.

The advantage of this approach is that exist provides a lot more means to edit XML using a web application.

Possible downsides of this approach

  • The network communication between containers can get quite complicated which may lead to hard to diagnose latency problems.
  • JVMs are until very recently not good at giving unused RAM back to the system. It is more likely that a JVM instance will always use as much memory as is specified using -Xmx parameter. JVMs until JDK 11 are therefore not suited very well for containerized environments where many containers compete for main memory.

Clone this wiki locally