[Alpha] Go feature server

Overview

The Go feature server is an HTTP/gRPC endpoint that serves features. It is written in Go.

Configuration of feature_store.yaml

The current Go feature server needs a Python based feature Transformation service support. Please refer to the following code as an example:

# -*- coding: utf-8 -*-
from feast.feature_store import FeatureStore


def main():
    # Init the Feature Store
    store = FeatureStore(repo_path="./feature_repo/")

    # Start the feature transformation server
    # default port is 6569
    store.serve_transformations(6569)

if __name__ == "__main__":
    main()

At the same time, we need to configure the feature_store.yaml as following:

...
entity_key_serialization_version: 3
feature_server:
    type: local
    transformation_service_endpoint: "localhost:6569"
...

Supported APIs

Here is the list of supported APIs:

Method
API
Comment

POST

/get-online-features

Retrieve features of one or many entities

GET

/health

Status of the Go Feature Server

OTEL based Observability

The Go feature server support OTEL based Observabilities. To enable it, we need to set the global env ENABLE_OTEL_TRACING to "true" (as a string type!) in the container or your local OS.

export ENABLE_OTEL_TRACING='true'

There are example OTEL infra setup under the /go/infra/docker/otel folder.

Demo

Please check the Reference[2] for a local demo of Go feature server. If you want to see a real world example of applying Go feature server in Production, please check Reference[1].

Reference

Last updated

Was this helpful?