Skip to content

0013. Rename BulkDike to Ferry

Status: Accepted

Context

The library was named BulkDike, after bulkhead and dike: something that holds back a flood. The name had three problems:

  • "dike" is also a spelling of an English slur, which makes a public library harder to adopt and recommend;
  • "bulk" suggests bulk imports and bulk APIs, while the library's distinctive behaviour is the opposite: quiet keys are not batched at all;
  • it describes the first constructor, a batcher in front of an API, and not the per-key writer that is now the library's main use.

Nothing was published yet, so renaming cost no user anything.

Decision

The library is Ferry: artifact zio-ferry, package ferry, repository EtaCassiopeia/zio-ferry. A ferry carries whoever gathered while it was away, and leaves again as soon as it is back: one crossing at a time per route, loads that grow with the crowd, and a lone passenger who crosses at once. That is dispatch on completion (0004) and direct calls for idle keys (0010).

Every identifier follows: BulkDike is Ferry, BulkDikeConfig is FerryConfig, BulkDikeError is FerryError, the formal model BulkDike.tla is Ferry.tla, and the test settings are FERRY_SAMPLES and FERRY_TEST_TIMEOUT_SECONDS.

Consequences

  • Earlier records were updated to the new identifiers, so that their references still resolve; their decisions are unchanged.
  • GitHub redirects the old repository URL. The old documentation site URL does not redirect.