liveBook · Manning

Dependency

As explained in Digital Twins in Action

A software dependency is a library, package, service, or runtime required by another software component.

A software dependency is a library, package, service, or runtime that another component requires to work. A digital twin may depend on cloud services, open-source libraries, and runtimes, each with a lifecycle outside the twin’s control. If a required component becomes unavailable, insecure, or incompatible, the twin can fail even when its own code has not changed. section 10.3.5

A dependency can be indirect. Installing one package may bring in libraries that the package itself requires; these are transitive dependencies. A vulnerable utility deep in that tree can still expose the system. Likewise, the disappearance of a package can stop builds: in January 2022, the removal of Faker.js from public Node.js package repositories caused builds worldwide to fail. section 10.3.5

External data is a related but distinct concern. A weather API might supply forecasts that help a garden digital twin decide when to irrigate. Whether that API is a required dependency or an optional source of context depends on what the twin must do when the forecast is unavailable. Before integrating external data, assess its authority, quality, update cadence, licensing, and access restrictions. section 2.3.5 section 4.2.4

Manage required packages as an ongoing production task:

  • Pin specific versions rather than using floating versions such as ^1.2.3 or latest. This prevents a new release from entering a build without an explicit upgrade decision. section 10.3.5
  • Use a proxy or private package repository, such as Artifactory, Sonatype Nexus, or GitHub Packages, to retain access to cached packages if a public package disappears. section 10.3.5
  • Keep a software bill of materials (SBOM) recording libraries, versions, and licenses. Use Dependabot or Renovate to find outdated packages and known vulnerabilities and open upgrade pull requests. section 10.3.5

How Digital Twins in Action covers it

How deep it goes
Explains transitive dependencies and operational safeguards, but does not provide package configuration or scanning commands.
Examples
Uses the Faker.js removal to illustrate build failures and a weather API to illustrate an external data source.
What you can do after
Operate/configure dependency safeguards using pinned versions, private repositories, SBOMs, and Dependabot or Renovate.
How it connects
Connects dependencies to software supply chain risk, version pinning, private package repositories, SBOMs, and vulnerability scanning.

Also explained in

Compare how 27 books explain dependency →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Digital Twins in Action. The section links point to the parts of the book it draws on.