Principle:Apache Paimon REST Catalog Protocol
| Knowledge Sources | |
|---|---|
| Domains | REST_API, Catalog |
| Last Updated | 2026-02-08 00:00 GMT |
Overview
HTTP-based catalog protocol for remote metadata management that standardizes table operations, namespace management, and authentication across distributed clients.
Description
The REST catalog protocol establishes a standardized interface for remote catalog operations, decoupling metadata management from compute engines and enabling centralized governance of table metadata. Rather than each client directly accessing storage to read schema files and manifests, the REST protocol exposes metadata operations through well-defined HTTP endpoints that handle authentication, authorization, and consistency guarantees centrally. This architecture enables multiple heterogeneous clients to interact with the same catalog without requiring direct storage access or shared filesystem dependencies.
The protocol defines resource paths following RESTful conventions where namespaces and tables are addressable entities with standard CRUD operations. Endpoints support listing namespaces, creating and dropping tables, loading table metadata, committing new snapshots, and managing table properties. Responses use structured formats with proper error codes and pagination for large result sets. The protocol supports multi-tenancy through namespace isolation and enables fine-grained access control policies to be enforced at the catalog level rather than requiring storage-level permissions.
Clients interact with the REST catalog through HTTP clients that handle connection pooling, retry logic with exponential backoff, and token-based authentication. The protocol supports both synchronous operations for immediate consistency and asynchronous patterns for long-running operations like compaction. Resource paths encode the hierarchy of catalog entities, and versioning in the protocol allows evolution of the API while maintaining compatibility with older clients. Error responses include detailed diagnostic information to help clients handle failures gracefully.
Usage
Apply this principle when building distributed data systems where metadata must be managed centrally, when multiple compute engines need to access the same catalog, or when metadata operations require authorization beyond simple filesystem permissions. Use REST-based protocols when clients may be implemented in different languages or when catalog functionality needs to be extended without modifying storage layers.
Theoretical Basis
The REST catalog protocol follows standard HTTP conventions with resource-oriented design:
Resource Hierarchy: ``` /v1/config - Catalog configuration /v1/namespaces - List namespaces /v1/namespaces/{namespace} - Namespace operations /v1/namespaces/{namespace}/tables - List tables in namespace /v1/namespaces/{namespace}/tables/{table} - Table operations ```
Standard Operations:
- GET: Retrieve resource metadata (idempotent, cacheable)
- POST: Create new resource or trigger action
- PUT: Update existing resource (idempotent)
- DELETE: Remove resource
Request/Response Pattern: ``` Request:
Method: POST
Path: /v1/namespaces/{namespace}/tables
Headers:
Authorization: Bearer {token}
Content-Type: application/json
Body: {name, schema, partition_spec, properties}
Response:
Status: 200 OK
Headers:
Content-Type: application/json
Body: {name, location, metadata_location, properties}
```
Error Handling:
- 400 Bad Request: Invalid parameters or malformed request
- 401 Unauthorized: Missing or invalid authentication
- 403 Forbidden: Insufficient permissions
- 404 Not Found: Resource does not exist
- 409 Conflict: Concurrent modification conflict
- 500 Internal Server Error: Server-side failure
- 503 Service Unavailable: Temporary outage
Retry Strategy:
- Idempotent operations (GET, PUT, DELETE): Retry on network errors
- Non-idempotent operations (POST): Retry only on safe error codes
- Exponential backoff: delay = base_delay * (2 ^ attempt) with jitter
- Max retries: Configurable limit to prevent infinite loops
Pagination: For operations returning large lists: ``` Request: GET /v1/namespaces/{namespace}/tables?pageToken={token}&pageSize=100 Response: {tables: [...], nextPageToken: "abc123"} ```
Authentication Flow:
- Client obtains token from authentication provider
- Token included in Authorization header on each request
- Server validates token and extracts identity
- Access control policies evaluated before operation proceeds
This protocol enables language-agnostic catalog access with well-defined semantics and error handling.
Related Pages
Implementation:Apache_Paimon_RESTApi Implementation:Apache_Paimon_RestApi Implementation:Apache_Paimon_HttpClient Implementation:Apache_Paimon_RestClient Implementation:Apache_Paimon_RESTClient Implementation:Apache_Paimon_RESTUtil Implementation:Apache_Paimon_ResourcePaths Implementation:Apache_Paimon_RESTToken Implementation:Apache_Paimon_PagedList Implementation:Apache_Paimon_ExponentialHttpRequestRetryStrategy Implementation:Apache_Paimon_ApiResponse Implementation:Apache_Paimon_RestException