Missing interface dependencies in module descriptor

Description

mod-pubsub is missing several interface dependencies.

There are calls to the following paths, but the modules does not declare a dependency on the corresponding interfaces (required or optional):

  • /audit/handlers/log-record

  • /automated-patron-blocks/handlers/fee-fine-balance-changed

  • /automated-patron-blocks/handlers/item-aged-to-lost

  • /automated-patron-blocks/handlers/item-checked-in

  • /automated-patron-blocks/handlers/item-checked-out

  • /automated-patron-blocks/handlers/loan-closed

  • /circulation/handlers/fee-fine-balance-changed

  • /circulation/handlers/loan-related-fee-fine-closed

  • /remote-storage/pub-sub-handlers/log-record-event

See

Note: required for eureka. without this ticket, there can be performance degredation.

CSP Request Details

None

CSP Rejection Details

None

Potential Workaround

None

Checklist

hide

Activity

Show:

Craig McNally February 25, 2025 at 9:06 PM

Believe me when I say that I understand . Let me just clarify the impact this has so we’re on the same page.

TL;DR - the absence of interface dependencies shouldn’t break functionality, but may have an impact on performance, and resource consumption of Kong. How much this impacts those depends on the situation, the frequency of these calls, how many interfaces are missing, etc.

The Eureka platform introduces module sidecars to Folio; Sidecars are components which run alongside each module and are responsible for a bunch of things previously handled by Okapi. One of those responsibilities is routing API calls from one module to another. The (simplified) flow looks something like this: mod-foo -> sidecar-foo -> sidecar-bar -> mod-bar. In order for the sidecar to route requests, it needs to know where the destination service lives. That information is based on interface dependencies declared for each module. So, if a module descriptor doesn’t declare a dependency, the sidecar will get the request and will not know where the destination service lives. We quickly realized the scope of the missing dependency problems across the board and to facilitate transition to Eureka, we added logic to the sidecars which routes requests to Kong (the API gateway) when it doesn’t know how to route the request. This allows things to function, even when interface dependencies are not declared. However, there are downsides to this:

  • The request is now taking a suboptimal route through the system. Instead of going directly from sidecar-foo to sidecar-bar, it needs to go out to Kong, then to sidecar-bar, and finally to mod-bar. In reality there are even more hops in there (load balancers, potentially reverse proxies, etc.)

  • There could be an impact on performance

  • Depending on the scope of the problem, this could impact Kong resource usage

Anne Ekblad February 25, 2025 at 7:54 PM

Hi, . Vega’s S capacity has been consumed by critical work for LOC’s go live, and we need to push this work to T. Please reply here with any urgent concerns.

Details

Assignee

Reporter

Labels

Priority

Development Team

Vega

Release

Trillium (R2 2025)

RCA Group

TBD

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created November 12, 2024 at 3:33 PM
Updated March 10, 2025 at 7:48 PM
TestRail: Cases
TestRail: Runs