OpenFn / OpenFn/apollo

rethink latest_adaptors list

Open
#575 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
5
Forks
10
Avg merge
2d 20h
Merged PRs (30d)
17

Description

Apollo maintains a list of the latest adaptor versions, with a basic description of each. This used by the workflow generation service.

This list is saved as a JSON file and is refreshed every hour.

Building the list is quite expensive, with one call to the github API to fetch a list of adaptor names, and one call per adaptor latest version to fetch the package JSON.

This is very inefficient, not very kind to githubs servers, and has a tendency to throw 429 errors.

I'd like to rethink the implementation of this entirely. We need to consider the other services which depend on adaptor metadata - and all-in-one solution would be nice.

options

  • The embed_docsite service has a better architecture: whenever the docsite is updated, a GH action calls up to apollo. Apollo then downloads the 5mb docs.json file and embeds the information within for RAG. Maybe we should update this to be more like: docs calls apollo, apollo downloads docs.json, apollo triggers docsite embeddings AND latest_adaptors update.
  • Preserve the cache in the database, not a JSON file,so that it persists

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how latest_adaptors is refreshed, where its JSON cache is stored, and which services consume adaptor metadata. Compare that flow with the embed_docsite architecture and evaluate the database-cache option; done requires a decided approach that addresses GitHub API load and the dependent services.

Written by the indexing model from the issue text.

Assessment

Tech stack
github
Domain
api, backend, database
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.