Using Feature Flags and Externalized configuration .NET Core app with Flagsmith

Problems

  • it leverages the continuous delivery process by allowing to decouple deployment and releasing
  • configuration of the service and integrations between services become easier due to avoiding re-deployments
  • you can extract your secretes from code base and store them in a separate protected storage

Flagsmith and Alternatives

Flagsmith features in short

How we use Flagsmith in our microservices

Wrapping and Abstracting

User = Microservice

Migration from appsettings.json

Naming Convention

<type>_<scope>_<purpose> (e.g., flag_feederservice_extendedaudit)

Points to Remember

  • Do not reuse old items
  • Enforce short life span for feature flags and track all of them which need to be removed on your Kanban/Scrum board. Remove them as soon as a feature is fully released
  • Do not use combinations or hierarchy of toggles
  • Use strategy pattern instead of IF and move the toggle point as close to Startup.cs file as possible
  • De-coupling decision points from decision logic
  • Inversion of Decision

References

  1. Feature Toggles (aka Feature Flags)
  2. When Feature Flags Go Wrong
  3. Feature Flags: How to Decouple Code from Features
  4. Переключатели функциональности (feature toggles): виды, преимущества и работа с ними в .NET
  5. The Hub for Feature Flag Driven Development

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Alexander Goida

Alexander Goida

All opinions are my own || Software Developer, learner, perfectionist and entrepreneur-kind person, nonconformist. Always seeks for the order and completeness.