Case Study

Lakekeeper

Un catalogo Iceberg REST in Rust con credenziali vended, OpenFGA e un'impronta operativa piccola.

Contribuzione open source Rust Apache Iceberg REST Catalog OpenFGA Lakehouse
Panoramica architetturale di Lakekeeper

Anatomia del sistema

  1. Input

    • Iceberg REST requests
    • OIDC identities
    • Cloud storage credentials
    • OpenFGA authorization model
  2. Core

    • Rust REST catalog service
    • Postgres-backed metadata
    • Vended credentials issuer
    • CloudEvents emitter
  3. Output

    • Iceberg table metadata
    • Temporary storage credentials
    • Cross-engine query access
    • Audit + change events
Vincoli
  • No JVM
  • Monthly release cadence
  • Multi-engine interoperability
  • Identity-aware by default

Perché esiste

Object storage e formati di tabella aperti non bastano da soli. Un lakehouse pratico ha comunque bisogno di un catalogo che possa gestire i metadata, applicare i controlli di accesso e restare abbastanza aperto da funzionare attraverso engine e modelli di deploy diversi. Lakekeeper conta perché mette il control plane attorno alle tabelle Iceberg in un servizio Rust-native ragionabile come infrastruttura, invece che come estensione opaca di un motore di calcolo.

Centro tecnico

Lakekeeper implementa il catalogo Iceberg REST in Rust, abbinando metadata su Postgres con autenticazione OIDC, autorizzazione OpenFGA, credenziali cloud vended, CloudEvents e un modello di deploy molto più leggero degli stack di catalogo orientati alla JVM. L'architettura è interessante perché il catalogo non è solo un servizio di lookup: diventa il posto in cui identità, accesso temporaneo allo storage, gestione dei namespace e interoperabilità cross-engine si incontrano.

Prove correnti

L'impronta pubblica è già concreta: un long-form architetturale, interoperabilità documentata con RisingWave, integrazioni con engine esterni e piattaforme managed, una cadenza di release mensile e 2 PR mergiate tracciate nel README del repository, invece di una vaga rivendicazione di familiarità. Il case study è particolarmente utile come controparte a livello di catalogo del lavoro sullo stack dati Rust: mostra dove metadata di tabella, governance e accesso degli engine smettono di essere astratti e diventano interfacce operative.