Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Seems that a lot of Supabase's project ls written in Elixir, which is not a very popular choice.

What is the reason behind choosing Elixir?



The tools written in elixir are this Logging server, our Realtime server, and a Postgres Pooler which we launched on HN this weekend [0]

The decision is centered more around the BEAM [1], the virtual machine which powers Elixir/Erlang. It was designed for high-availability systems and it's very efficient at managing large numbers of processes and threads.

In the context of these tools, it's useful for handling open connections and spiky workloads.

edit: Also worth mentioning - we don't care too much about the language. We aim to use the right tool for the job, or preferably an existing open source tool. A good example of this is PostgREST which is written in Haskell. The only person on our team who knows Haskell is Steve (the maintainer). We don't mind because it's the right tool for the job, it's open source, and it has an amazing community.

[0] Pooler: https://news.ycombinator.com/item?id=35501718

[1] BEAM: https://blog.lelonek.me/elixir-on-erlang-vm-demystified-3205...


What's the contingency plan if Steve gets hit by a bus?

(very much hoping he doesn't)


We have steve locked in a safe-room.

But we also sponsor other members of the community to work on PostgREST[0]. We don't promote the paid sponsorship much. Instead, we find people who are already doing the work and then offer them sponsorship to continue doing it.

[0] sponsorship: https://opencollective.com/supabase-postgrest


There’s more than 1 developer out there that knows Haskell and SQL. You just run into issues if you want those developers to sit in your office next to you.


> sit in your office next to you

you comment is probably metaphorical, but it's worth pointing out how we have de-risked this: supabase is fully distributed. We look for the right person no matter where they live. We're currently 65 people in more than 20 countries




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: