Hyperlinkv0.8.0-beta.28
DraftMigration checklist — 0/6
  • Current API — no legacy surface
  • LSP code previews
  • Clean example types
  • Verified examples
  • Follows the docs standards
  • Owner-reviewed

Glossary

Concise definitions for the terms used throughout these docs. Link to any entry with /docs/glossary#term; on wide screens, a linked term shows its definition on hover.

Tag

A typed identifier for a Service or Hyperlink. Code depends on the Tag rather than on a concrete Implementation — yield* Tag obtains it, and a Layer provides it.

Service

A capability a program depends on: a clock, a database, a mailer. In Effect, a Service is reached through its Tag, so code states what it needs without deciding how that need is met.

Contract

The methods of a Hyperlink together with a schema for every value that passes through them. Because a Contract is schema-typed, the Hyperlink can be reached across runtimes, not only within one.

A Service whose Tag carries a Contract. A Hyperlink can run in the current runtime, be served over RPC, or be reached as a client — the same Tag in every case.

Implementation

The code that fulfils a Contract — the concrete behaviour behind each of its methods.

Layer

How a Hyperlink is provided, and therefore where it runs: Hyperlink.layer runs it in process, Node.httpServer / Node.wsServer serve it over RPC (HTTP or WebSocket), and Hyperlink.connect / Hyperlink.ws connect to one running elsewhere — a browser dashboard uses the WebSocket pair. See Managing Layers.

Handle

The value yield* Tag returns. It exposes the Contracts methods and reads the same whether the Hyperlink runs locally or across a network.

Node

A named runtime endpoint, carrying the address at which its Hyperlinks can be reached. Served Hyperlinks find one another through the Nodes they share.

Cross-runtime Service

A Hyperlink defined once and reached through the same Tag wherever it runs — in the same process, served over RPC, or across the network.

Edit this page on GitHub