This project provides an web interface for creating and updating feature flags and a GRPC service for fetching the status of flags by their name. Each runs on their own port but are in the same Release.
To run individually and not part of the demo the Release can be built with
mix
:
MIX_ENV=prod mix release
Then start Postgres with docker compose
docker compose up
And run the Release:
PHX_SERVER=1 FEATURE_FLAG_SERVICE_PORT=4000 FEATURE_FLAG_GRPC_SERVICE_PORT=4001 _build/prod/rel/featureflagservice/bin/featureflagservice start_iex
Traces of interaction with the web interface is provided by the OpenTelemetry Phoenix instrumentation with Spans for database queries added through the Ecto instrumentation.
The GRPC service uses grpcbox and uses the grpcbox interceptor for instrumentation.
A copy of the protos from pb/demo.proto
are kept in
proto/demo.proto
and rebar3 grpc_regen
will update the corresponding
Erlang module src/ffs_demo_pb.erl
.