Hacker News new | ask | show | jobs
by thibaut_barrere 972 days ago
Something I often "draw" to other developers when showing Elixir is the difference in terms of "boundaries".

It is common to have:

frontend <-JSON-> backend <-db/queue-> background jobs

Each boundary introduces complexity (marshalling / impedance mismatch / but also different HR/recruiting needs).

In Elixir you can more or less do:

front/back/background

with no boundaries or reduced boundaries (e.g. using LiveView & OBAN in the same process, even if going through Postgres as a queue).

Someone coined the term "deepstack engineer" as well recently I think, which I could draw as:

frontend <-> backend <-> background <-> machine learning

Now with Elixir you can do everything in the same process (but with isolation as required):

front/back/background/ml

And this is something I find really interesting about this stack.

2 comments

Interesting, most of my work has been 'across the stack' but for desktop applications. This looks like a better match for me than most other approaches to web applications.
It is a very good point: I did a lot of desktop apps at one point (the largest being a mixture of C# and legacy C++ wrappers), and the first time I tried LiveView it somehow reminded me of WinForms!

So I can relate :-)

I'm curious, how do you run ML in the same process?
It is just the way it is with Elixir - everything can run in the same process (or in different connected nodes):

See:

- https://www.youtube.com/watch?v=g3oyh3g1AtQ - https://www.youtube.com/watch?v=HK38-HIK6NA