Skip to content

zero-bullshit-engineering/zerobs_stack

Repository files navigation

ZerobsStack

The 0BS stack is a starting point for building Elixir and Phoenix applications, presented as an Elixir metapackage. It includes the following features:

  • Featureflags (via fun_with_flags)
  • Prometheus metrics (via telemetry)
  • HTTP Client (Using Tesla with included telemetry reporting)
  • Featureflags UI and Prometheus metrics on own port for easier securing
  • Load shedding via feature flags per controller action ("Drop 50% of all requests to PageController#index")

Planned features

  • MQTT subscriber (with instrumentation)
  • Rate limiting per route/user

Installation

The package can be installed by adding zerobs_stack to your list of dependencies in mix.exs:

def deps do
  [
    {:zerobs_stack, "~> 0.1.0"}
  ]
end

Usage

Feature Flags

Run mix copy_featureflags_migrations to add the needed Ecto migrations to your priv/repo/migrations folder.

Load shedding

Add plug ZerobsSTack.LoadShedPlug to the end of the def controller do block in your ApplicationWeb module.

To enable load shedding open your FunWithFlags GUI and add a flag named like elixir_stackerweb_pagecontroller_index_disabled. This would drop Traffic for Elixir.StackerWeb.PageController#index (We downcase the whole module name and replace . with _.)

About

An Elixir metapackage for enhancing your applications

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages