Overview

Following the Technical Council’s acceptance of the Application Formalization RFC, there have been many meetings, WOLFcon presentations, and ad-hoc discussions about a closely related topic: Application composition. This refers to the specific groupings of modules into applications. The purpose of this document is to describe an approach to answering this question, with the aim of getting those who are interested aligned.

The plan consists of two parallel efforts attacking the problem from different angles:

The Functional/Product Perspective

The goal here is to define the ideal composition of applications, this gives us something concrete to work towards.

Technical dependencies can be ignored here, e.g. while MARC and Inventory are very tightly coupled right now, it doesn’t need to be that way forever.

This effort is led by those on the “product” side of the project. PC members, SIGS, SMEs, etc.

Considerations

There are several things which should be considered here:

The Technical/Dependency-driven Perspective

The goal here is to split apart the so-called “mega” applications into smaller, more manageable pieces. Some of this work will require code changes, others can be split out right now will little effort. It’s important to note that this is not a one-and-done situation. We will need to iterate on this as things evolve/mature, making incremental progress over time.

This effort is led by architects and executed by developers.

Coming Soon: Additional details on the approach we’re taking here.

Considerations

Gap Analysis and Incremental Progress

Once we have made progress on both fronts, we can analyze the gaps between the current application composition and where we want to eventually be.

This is an iterative approach, where we make incremental progress toward the ultimate goal coming out of the functional/product perspective. Each iteration includes: