Software Stack

The software stack used by the Stroom family of products.

Stroom and Stroom Proxy

Stroom and Stroom Proxy live in the same repository, share some common code and are built by the same Gradle build.

Languages and key frameworks

  • Java 15 - The language for the core application
    • Dropwizard - A RESTful framework incorporating embedded Jetty.
    • Junit 5
    • SLF4j and Logback
    • Mockito
    • Jooq - Generates Java code for type safe SQL.
    • Apache Lucene - The search library used by Stroom’s indexes and dashboard queries.
    • Lightning Memory Mapped Database - Used for memory mapped persistent reference and search data stores.
  • React - Some of the new UI screens.
    • Typescript

Build and development tools

  • Gradle - Building the java application and orcestrating related sub-builds, e.g. npm.
  • Github Actions - The CI build and release.
  • Bash - Various utility shell scripts.
  • Docker - Building the stroom and stroom-proxy docker images.
  • Docker Compose -
  • Docker containers - Provide consistent build environments for
    • Java
    • npm
    • Plant UML
  • npm - For the build of the new React based UI screens.

Services

  • Nginx - Used for SSL termination, load balancing and reverse proxying.
  • MySQL - Database for persistence in Stroom.
Last modified May 3, 2024: Add docs on internal links. (8fbdbc8)