Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Adaptive Systems

Building Adaptive Systems

Chris Keathley

May 28, 2020
Tweet

More Decks by Chris Keathley

Other Decks in Programming

Transcript

  1. A resilient service should be able to withstand a 10x

    traffic spike and continue to meet those objectives
  2. Little’s Law Server 2 requests = 10 rps * 200

    ms 200ms BEAM Processes CPU Pressure
  3. Little’s Law Server 3 requests = 10 rps * 300

    ms 300ms BEAM Processes CPU Pressure
  4. Little’s Law Server 30 requests = 10 rps * 3000

    ms 3000ms BEAM Processes CPU Pressure
  5. Little’s Law Server 30 requests = 10 rps * ∞

    ms ∞ BEAM Processes CPU Pressure
  6. Regulator.install(:service, [ limit: {Regulator.Limit.AIMD, [timeout: 500]} ]) Regulator.ask(:service, fn ->

    {:ok, Finch.request(:get, "https://keathley.io")} end) Regulator