GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — starrocks/fe/fe-spi at main · APIJSON/starrocks

Expand file tree

/

fe-spi

/
Copy path

Directory actions

More options

More options

Directory actions

More options

More options

Latest commit

 

History

History
History
 
 
/

fe-spi

/
Copy path

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
src/main/java/com/starrocks
src/main/java/com/starrocks
 
 
README.md
README.md
 
 
build.gradle.kts
build.gradle.kts
 
 
pom.xml
pom.xml
 
 

README.md

Outline

StarRocks FE SPI (Service Provider Interface)

The fe/spi module defines the public Service Provider Interfaces (SPIs) for the StarRocks Frontend. It is the foundation of the pluggable architecture: connectors and plugins must implement these contracts, while the FE core programs against the interfaces.

Responsibilities

  • Provide stable, minimal contracts for connectors and plugins.
  • Decouple FE core from concrete implementations.
  • Enable safe evolution via versioning and deprecation policies.

Design goals

  • Stability first: interfaces evolve conservatively and compatibly.
  • Clear separation: SPI must not depend on FE core internal types.
  • Minimal surface: small, orthogonal interfaces; no hidden coupling.
  • Testability: interfaces are mock-friendly and deterministic.

What lives here

  • Public Java interfaces and data contracts for plugin authors.
  • Common exceptions, result/status types intended for SPI boundaries.
  • Documentation and guidance for implementers.

Typical extension points

  • Connectors (external catalogs, metadata/external table access, etc.)
  • Resource and system integrations (e.g., external services)
  • Administrative or management hooks exposed via well-defined SPI

How FE core uses SPI

  • FE core depends only on SPI interfaces.
  • Concrete plugins/connectors are discovered and wired at runtime.
  • Implementations must be prepared for concurrent use by FE subsystems.

Testing guidance

  • Unit test against SPI interfaces with mocks/fakes.
  • Add integration tests that exercise real interactions where applicable.
  • Include negative tests for error paths and boundary conditions.

References

  • Architecture overview: see project root README and FE module docs
  • Testing structure: test/sql/, fe/fe-core/src/test/
  • StarRocks documentation: https://docs.starrocks.io/
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.