Liking cljdoc? Tell your friends :D

6. Don't implement caches for indexes (artifacts, versions, etc)

Date: 2018-01-16

Status

Accepted

Context

In ADR-0005 a decision was made to implement some bundling mechanisms to make it easier for tooling authors to retrieve documentation data.

In the pursuit to better show off cljdoc's multi-version capabilities I was going to implement a similar caching/bundling mechanism for the list of versions available.

Following problems have been identified:

  • Creating and updating an index of versions requires knowledge of prior versions which in turn requires us to talk to the Grimoire store first.
  • The Grimoire store may not be fully available on the machine building documentation.
  • This results in additional roundtrips and, should there ever be multiple machines bundling documentation, distributed writes.

Decision

Due to the above issues I will not implement any caches to make lists of groups, artifacts or versions easily available for now. Already made changes in this direction will be reverted.

Consequences

Listing versions (and perhaps also groups/artifacts) is still desirable and so I will need to come up with an approach that avoids the above issues. One option already coming to mind is a basic HTTP API that reads from the global Grimoire store (S3 or similar) and returns index information.

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close