Implementation:Kubeflow Pipelines MLMD Service GRPC
| Knowledge Sources | |
|---|---|
| Domains | Metadata_Management, API_Schema, gRPC |
| Last Updated | 2026-02-13 14:00 GMT |
Overview
Auto-generated Go gRPC client and server stubs for the ML Metadata Store service, providing the RPC interface for all metadata CRUD operations.
Description
Generated by `protoc-gen-go-grpc` (requiring gRPC-Go v1.32.0+), this file (2,441 lines) defines the MetadataStoreServiceClient interface with 50+ RPC methods, a concrete `metadataStoreServiceClient` implementation using `grpc.ClientConn`, and the MetadataStoreServiceServer interface for server implementations. Also includes `UnimplementedMetadataStoreServiceServer` for forward-compatible servers.
Usage
The KFP API server uses the client stubs from this file to record and query pipeline metadata. This completes the gRPC integration layer alongside the message types from the companion `_service.pb.go` file.
Code Reference
Source Location
- Repository: Kubeflow_Pipelines
- File: third_party/ml-metadata/go/ml_metadata/metadata_store_service_grpc.pb.go
- Lines: 1-2441
Signature
package ml_metadata
type MetadataStoreServiceClient interface {
PutArtifactType(ctx context.Context, in *PutArtifactTypeRequest, opts ...grpc.CallOption) (*PutArtifactTypeResponse, error)
PutArtifacts(ctx context.Context, in *PutArtifactsRequest, opts ...grpc.CallOption) (*PutArtifactsResponse, error)
PutExecutions(ctx context.Context, in *PutExecutionsRequest, opts ...grpc.CallOption) (*PutExecutionsResponse, error)
GetArtifactsByType(ctx context.Context, in *GetArtifactsByTypeRequest, opts ...grpc.CallOption) (*GetArtifactsByTypeResponse, error)
GetLineageGraph(ctx context.Context, in *GetLineageGraphRequest, opts ...grpc.CallOption) (*GetLineageGraphResponse, error)
// ... 50+ RPC methods
}
func NewMetadataStoreServiceClient(cc grpc.ClientConnInterface) MetadataStoreServiceClient
type MetadataStoreServiceServer interface {
// Same methods as client, but (ctx, *Request) -> (*Response, error)
}
type UnimplementedMetadataStoreServiceServer struct{}
Import
import ml_metadata "github.com/kubeflow/pipelines/third_party/ml-metadata/go/ml_metadata"
import "google.golang.org/grpc"
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| grpc.ClientConnInterface | gRPC connection | Yes | Established gRPC connection to MLMD server |
Outputs
| Name | Type | Description |
|---|---|---|
| MetadataStoreServiceClient | interface | Client stub for making MLMD gRPC calls |
| MetadataStoreServiceServer | interface | Server interface for implementing MLMD service |
Usage Examples
Creating a Client and Putting Artifacts
import (
ml_metadata "github.com/kubeflow/pipelines/third_party/ml-metadata/go/ml_metadata"
"google.golang.org/grpc"
)
conn, err := grpc.Dial("metadata-grpc-service:8080", grpc.WithInsecure())
if err != nil {
log.Fatalf("Failed to connect: %v", err)
}
defer conn.Close()
client := ml_metadata.NewMetadataStoreServiceClient(conn)
resp, err := client.PutArtifacts(ctx, &ml_metadata.PutArtifactsRequest{
Artifacts: []*ml_metadata.Artifact{
{Uri: proto.String("gs://bucket/output"), TypeId: proto.Int64(1)},
},
})