Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Change the characteristics of copied data option to better account for variations

...

Use copies of data to make decisions

In order for it This option has the most potential design variations. It might involve in-memory caching or persistent storage of the copied data and it may involve using messaging infrastructure or periodic requests.

Irrespective of the design variations, in order for this option to be acceptable, a variety of stakeholders within the community would need to accept some tolerance for decisions being made with stale information. When I've talked to with folks about this previously, they have been uncomfortable with doing this (see above).

Characteristics

  • Requires no downstream requests for fetching data during check out process
  • Increases the potential for stale data to be used for decisions
  • State changes still require a downstream request (and the requisite proxying overhead)
  • Is contrary to constraints that may still be present in FOLIOstill be present in FOLIO
  • Requires less / no (depending upon variations chosen) downstream requests for fetching data during check out process
  • Introduces complexity of either caching or processing messages and persistent storage into mod-circulation
  • Introduces May introduces a dependency on a database from for mod-circulation on a database 
  • Introduces May introduces a dependency for mod-circulation on messages produced by other modules
  • State changes still require a downstream request (and the requisite proxying overheadMay introduce the need for a system user for mod-circulation (to populate / update the cache)

Variations

The characteristics of this approach varies more based upon some design decisions we make. A couple of the significant ones are outlined below.

...

Freshness measurement

Periodic HTTP requestsMessages consumed from Kafka
Freshness

Dependent upon frequency of periodic refresh.

Likely to be lead to data being stale for longer than with messaging

Dependent upon message processing latency
Access requirementsNeeds a system user or module permissions granting to a timer endpointNeeds access to Kafka topics for every record type (assuming record snapshot based messages as used with mod-search)
Initial population / manual state refreshRequires requests to fetch all records for for all cached records typesEither requires reprocessing of persistent topic (not currently allowed by FOLIO standards) or custom process (similar to mod-search re-index process)
Load on other modules during synchronisationCould be significant. Dependent upon number of record types and quantity of recordsPotentially none with persistent topics (not currently allowed by FOLIO standards)

Combine the business logic and storage modules together

...