2023-07-31 - Platform & Application Formalization

Date

Attendees 

Discussion items

TimeItemWhoNotes
1 minScribeAll

Craig McNally will take notes

*

Platform & Application Formalization

Vince

Background:


Notes:

  • A recap/summary of the previous session was provided.  No new questions
  • Questions raised at the last session were reviewed and discussed
    • It was acknowledged that we may need a transition period where we start with larger applications, and once we break apart the dependencies, refine these large applications into smaller, more ideal applications
    • Reiterated that applications are versioned.  If a module gets a version bump, so does it's application
    • The goal here is to bring the TC up to speed on technical topics discussed at University of Chicago a month or two ago.  WOLFcon will be a good opportunity for others to weigh in on both technical and non-technical aspects of these things.
      • The non-technical aspects do need to be considered when formulating technical designs
      • The introduction of applications requires a shift in how the project thinks about releases and related processes
  • An overview/introduction of the formalization of "platforms" was given
  • The "Platform" is the stack, e.g. Folio Core + Folio LSP + Folio LSP Extended = platform
  • We need to be careful about expanding the scope of this proposal, e.g. what goes into the extended tier?  
  • The idea is that this will help simplify the release process.  Most of the modules being introduced lately are specialized, on the fringe, etc. 
  • Extended Tier applications are confirmed to be compatible with a particular Platform/Platform version.
    • Bugfest tests Folio Core + Folio LSP 
    • Confirming compatibility falls upon the development teams providing the extended tier applications
      • How exactly does all of this work?  Probably deserves a dedicated discussion
  • Note that an application may belong to multiple platforms, but a given module can only belong to a single application.
  • More comments regarding the technical vs non-technical aspects of this discussion.

QuestionsAll
  • "Platform" is misleading wording. It's true that it is currently used for https://github.com/folio-org/platform-complete and https://github.com/folio-org/platform-minimal, but only platform-minimal is actually a platform all others are based upon. Can "Platform" been renamed to "Product" or some other better word?

  • "Application" is misleading wording and a rename has been requested multiple times. Can "Application" been renamed to "Bundle" or some other better word?
  • I don't see the difference between an application descriptor and a platform discriptor. The example application descriptor includes a platform descriptor by reference suggesting that they are structually the same. Can you provide an example that shows how they are structurally different?
  • https://github.com/folio-org/platform-complete and https://github.com/folio-org/platform-minimal already have fully automated dependency resolution and the *.json and other files in these repositories provide most of the information the proposed application descriptor and platform descriptor will provide. Why don't you use (and extend where needed) the existing solution?
  • Why are Application-Centric UI Bundles included in the Platform & Application Formalization proposal? Can they been moved out of this proposal and discussed separately? Then UI-Module-Centric UI Bundles can be discussed that can be implemented independently of the Platform & Application Formalization. Why are Application-Centric UI Bundles better than UI-Module-Centric UI Bundles?
  • Why has the Shared-Database-Pattern proposal being included into the Platform & Application Formalization proposal? Please remove the Shared-Database-Pattern proposal and discuss it separately. Each of the two proposals can be done without the other. The Shared-Database-Pattern should not generally been allowed within any Application, only in very few cases after a detailed investigation of the pros and cons involving all developers, technical leads and architects. See also https://relevant.software/blog/microservices-database-management/

Zoom Chat-

Marc Johnson 11:13 AM
The framing of service packs for the flower releases being a whole system change, is a non-technical policy and communication decision

Marc Johnson  to  Everyone 11:23 AM
What is the name for the fundamental building blocks of FOLIO, if it isn’t platform? Is it core?

Jenn Colt  to  Everyone 11:24 AM
This again seems not technical

Marc Johnson 11:26 AM
Indeed, most of the reason why folks want their modules in the flower release is marketing (There are some technical considerations for folks who don’t want to / can’t define their own module list)

Maccabee Levine 11:33 AM
Yes, this proposal may be fine from a technical perspective, but it likely creates marketing & product-definition problems for PC & CC
And testing problems per Julian below

Marc Johnson 11:36 AM
For me, I’d prefer we worked the other way round, go from the product challenge to the solution (which is both technical and non-technical)

Maccabee Levine 11:36 AM
That would match how we approve new modules, in that functionality has to be approved first

Jenn Colt 11:41 AM
I think it’s reasonable to propose that the technical aspects create new product options. But what to do with those options don’t seem like they should be part of the proposal.
I guess what to do is included as deciding to do those things provides justification for doing the technical thing, so perhaps I actually agree with doing it the other way around like you say.

Julian Ladisch (VZG)  to  Everyone 11:28 AM
People want modules being included into a flower release to get better testing by the community because it gets deployed to the snapshot and bugfest environments.

Jenn Colt  to  Everyone 11:55 AM
This seems to open a lot of conflict of interest potential which also requires governance input

Tobias Stumpp | University of Tübingen (for SWB/BSZ)  to  Everyone 11:55 AM
*This: Slide "Applicatino Stores and Marketplaces"
Virtual applications are currently both platform and environment dependent. Am I guessing correctly, the basis for an application store is a FOLIO runtime environment?
FOLIO runtime environment, so access to Docker/Kubernetes

Marc Johnson 12:01 PM
Yes, tooling specific deployment is a fundamental challenge with app stores for FOLIO

Action Items

  •