Giter Club home page Giter Club logo

Comments (3)

pcurtisrab avatar pcurtisrab commented on July 29, 2024

A new connectivity module has been implemented.

The old module had Neurons and CompoundNeurons (a.k.a. Pathways). These classes contained their own graphing (extend, expand) logic as well as evaluation logic (GetWithHealing).

In the new module, we now talk about Dependencies (instead of Neurons), and a CommsDependencyEvaluator, which separates the concern of dependency specification from the implementation details of the evaluation of these dependencies.

The new design is summarised as follows:

  1. Instead of establishing a graph of dependencies at runtime, a dependency graph is modelled declaratively in Dependencies.yaml. Code-gen transforms this into a collection of Dependency Objects. E.g.
  2. The notion of Pathway length is replaced with a Dependency Chain. (E.g. DataHolderBrands depends on [DataRecipientJwks,RegisterOidc,DataRecipientStatus,RegisterAccessCredentials,] This chain is short (no Passthru Neurons), and explicit in each Dependency.
  3. The healing process works by evaluating the dependency graph with the full chain of dependencies having caches enabled. This is passed to an optional validator. If the validation fails, then there are up to 3 retries of this process (configurable by MAXIMUM_HEALING_ITERATIONS). On each retry, a further 3rd of the caches are demoted (deactivated for the next evaluation run).
  4. A cached dependency can have a minAge and a maxAge, and a validator. If the value from the cache is not valid, the dependency is always re-evaluated. If it is older than maxAge, it is always re-evaluated. If the value in the cache is younger than minAge, the cache is always honoured and the dependency is not re-evaluated (even during healing).

As a result of this design, the maximum response time in the worst case that an error is unrecoverable remains short. Additionally we are able to prevent abuse of other ecosystem participants by the use of minAge and the known configurable retry limit.

from adr-gateway.

pcurtisrab avatar pcurtisrab commented on July 29, 2024

This will be released as a version 1.1 in the coming days.

from adr-gateway.

pcurtisrab avatar pcurtisrab commented on July 29, 2024

Solved with 5771aa9

from adr-gateway.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.