finds.dev← search

// the find

poteto/terraform

★ 420 · Elixir · MIT · updated Feb 2021

A simple plug for incrementally transforming an API into Phoenix. Check out the blog post:

A Plug that lets you migrate a legacy HTTP API to Phoenix one endpoint at a time by routing unmatched requests to a fallback proxy you define. Useful when you need to run Phoenix alongside an existing backend rather than doing a big-bang rewrite. The audience is Elixir shops inheriting non-Phoenix services.

The core idea is genuinely useful — strangler-fig migrations are the right way to replace legacy APIs, and having a first-class Plug abstraction for this beats hand-rolling middleware. The DSL stays idiomatic: you write a `Plug.Router` module, so there's nothing new to learn. The library is small enough (single file: `lib/terraform.ex`) that you can read the whole thing before deciding to depend on it.

Dead project — last commit was 2021 and Phoenix compatibility caps at 1.5.x, which is now several major versions behind (Phoenix is at 1.7+). No websocket or LiveView passthrough, so if your legacy backend uses anything other than plain HTTP you're on your own. No connection pooling, timeout configuration, or circuit-breaker primitives in the proxy layer, meaning production use requires you to bolt on reliability yourself. The test suite is minimal and tests only the macro-level wiring, not actual proxy behavior.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →