Decide: support apisix-standalone backend (and its cache layer)?
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Stack tecnologico
- go, typescript
- Ambito
- backend, cli, documentation
Direzione di ricerca
Leggi docs/adc-test-parity-plan.md e l’implementazione della cache a cui fa riferimento la issue in adc/libs/backend-apisix-standalone/src/, quindi esamina adc/libs/backend-apisix-standalone/e2e/cache.e2e-spec.ts. Il lavoro è completo quando AGENTS.md o docs/ registra se standalone APISIX è supportato e, in tal caso, la strategia della cache e le modifiche alla CLI visibili all’utente; altrimenti rimuovi le voci di parità correlate.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
`adc` supports three backends: `apisix` (cluster mode), `api7ee`, and `apisix-standalone` (single-node, config-via-API). The standalone backend in adc ships with a per-instance cache layer that tracks the last-known full config so subsequent syncs can skip the full "PUT every resource" cycle when nothing changed.
a7 currently targets API7 EE only. This issue asks: do we want a7 to also drive standalone APISIX, and if so, do we need the cache?
Context
- adc cache implementation lives in `adc/libs/backend-apisix-standalone/src/` and tests in `adc/libs/backend-apisix-standalone/e2e/cache.e2e-spec.ts` (~440 lines).
- The cache exists because standalone APISIX accepts the entire config as one PUT; without a cache, every sync re-uploads everything even when there are no diffs.
- API7 EE has a real Admin API with per-resource endpoints, so a7 doesn't need this cache today.
Two questions
1. Should a7 support standalone APISIX at all?
Arguments for:
- broader user base — community APISIX users could share tooling with API7 EE users,
- matches `adc` feature parity exactly,
- standalone is the easiest way to demo a7 (no etcd cluster).
Arguments against:
- a7 is positioned as the "official API7 EE CLI"; widening scope blurs the product story,
- maintenance cost — every `config` subcommand grows a per-backend branch,
- the multi-backend abstraction in adc is non-trivial (per-backend resource transformations, separate validation paths).
2. If yes to (1), how is the cache stored?
Options:
- on-disk under `~/.config/a7/cache/{backend-id}.json` keyed by gateway-group/server URL,
- in-memory only (no skip on subsequent runs — defeats the point),
- never cache — always upload full config (simple, but loses the perf win).
Why deferred
Identified during the adc → a7 test parity audit (see `docs/adc-test-parity-plan.md`). Unlike the other deferred items, this one is scope-first, not work-first — we need a product call before any code is meaningful.
Definition of done
A documented decision (in `AGENTS.md` or `docs/`) on:
- whether a7 will support apisix-standalone (yes / no / future),
- if yes, the cache strategy and any user-visible CLI changes (`--backend` flag, etc).
If "no", close this and remove the corresponding `[N]` entries from the test-parity plan as out-of-scope rather than gaps.
- Lingua principale
- Go
- Stelle
- 1
- Fork
- 0
- Merge medio
- 1h 3m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di api7/a7
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
config validate: detect bare/null unsupported sections (true key-presence)Forse di nuovo libera @shreemaan-abhishek l’ha presa 146 giorni fa e non c’è nessuna pull request aperta. Aperta
Issue simili
-
bug go
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
genkit-ai/genkit#6761 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
bug(backend): `make test-update` in backend/src/v2 fails because the --update flag was removedApertaready
Difficoltà 2/5 1-3 ore Idoneità per principianti 92/100
kubeflow/pipelines#14784 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
bug frontend good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
I maintainer di solito rispondono entro 1 giorno
-
trust: update-propagation-directive requires developer mode while add and remove do notForse già presa @bhuvan-somisetty l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
oalders/clodhopper#133 ·