Have you moved away from elixir? If so, why?

Except that I can typically have my nodes degrade in a much more robust way then istio can. Also the problems don’t “go away” because you use istio or k8s or whatever. You just have different problems now. But thats beside the point.

More importantly there’s nothing about running elixir that keeps you from running ephemeral nodes. We run ephemeral nodes at work. You’re drawing a distinction here that I truly don’t understand. Do your other apps and services not try to reconnect when they drop a database connection? Furthermore if the database goes down do you start killing your service nodes when they return enough 500s because they can’t talk to the database? Or do you stop sending them traffic because they start returning a degraded status in your liveness checks? All of these patterns work equally well with Elixir. The distinction your drawing isn’t real.

5 Likes

I’m not in any way suggesting that Elixir can’t operate in this way. I’m merely suggesting that some of the obvious benefits of supervision models cease to be such obvious benefits. And without the obvious benefits, it becomes a much harder sell.

2 Likes

Let me ask one question then: how do you expect your app to behave when you drop connections to the database because there is a very quick netsplit of few seconds?

The supervisor model in Elixir was never about the fault tolerance at the load balancer or between nodes (it could be done like that but you would need to write a lot of infrastructure to get this working, i.e. it is not there out of the box). It is about bringing a reasonable model to reason about errors inside the programming language.

And the behaviour Elixir provides here can be achieved in all programming languages. I am pretty sure Java, Ruby, Python, Haskell, etc can all reconnect to the database when the database disconnects, the case for Elixir is that achieving the same behaviour is done more reliably and with simpler idioms.

So I agree with @keathley. Those two should not really be compared and if someone was expecting the value for Erlang/Elixir to come from the fault tolerance at such a high level, it is no surprise their expectations are not being met. But preferably those expectations should not have been set in the first place.

9 Likes

I would also argue that the fault-tolerant aspects of OTP are just one aspect of Elixir. There are PLENTY of other reasons that one can “sell” the language.

One of the greatest measures I place on a language is how easy it is to transition back into a codebase after not working with it for a while. We run a decent number of apps/microservices where I work - many of which arent touched for ages. It’s always a pleasure working with our Elixir apps. And we’re able to hit the ground running whenever changes are needed.

So while I came for all the other “obvious” benefits… I’ve really stayed for the above. And its why I chose it as our main tool going forward as well.

2 Likes

No application can self-fix a bug, but it can mitigate problems and provide most of the service as possible, self-healing to resume the full service when the circumstances allow it. I’ve experienced many such situations in my Erlang/Elixir based production. We once had a case where some process in a critical service was failing constantly and frequently for two weeks, yet from the outside, from the standpoint of end-users, everything was working perfectly fine.

This is exactly how fault-tolerance in Erlang/Elixir works, but at a much more granular level. Instead of thinking about nodes, containers, or OS processes, we think in these lightweight processes, each of which corresponds to a single separate activity in a system.

Stopping a node, or an OS process might take down thousands, or even millions of activities. Stopping a single process will take down just one activity.

Because a single node/OS process might still handle a large number of system activities. I don’t want to take all of these down just because a minority of the activities in the single node are corrupted.

12 Likes

Intentionally ignoring all of the side discussions happening in here…

Elixir is my language of choice and certainly the community I enjoy participating in the most. About four years ago I introduced it at on a project at work and it has grown to be come our primary development language. In fact, it is a huge draw for hiring and something that we openly advertise with.

I (and the rest of the company) still use other languages on a daily basis (JS, Ruby, Python) and dabble with others (OCaml, Rust), but the BEAM is the gold standard.

6 Likes

Now that I’ve had a couple of apps in production for multiple years, I will say that I find this to be very true.

2 Likes

First of all, let me say that I am new to developing and new to this forum which I joined since December 2016. But going back to the thread topic and taking into account that I have read the majority of its posts let me say that I am loving Elixir and the community.

Maybe because I am a new Developer and I don’t propose new libraries and I am mostly learning from all your guys I really don’t feel like this is a hostile community. I am pretty sure some experienced guys here laugh of my questions and opinions… like this one.

But… having said that let me say, from my point of view, what I think:

  1. I think some of you take comments personal and sometimes they are but generally they aren’t. There are a lot of intelligent and experienced people in this community and because of it, with strong opinions. Don’t ever take comments personally, try to extract the positive side of them.
  2. This is an open source community where you can say anything you want, being respectful of course.
  3. We are all entitled to explore different solutions to common problems but no one is obligated to accept your solutions. That is life, not the community. Accept the solution that best fits your needs.
  4. I agree, that for newcomers like me, we prefer libraries with strong adoption or at least I prefer. Constantly swapping libraries is a hassle considering that takes to much time to understand new paradigms considering that the documentation doesn’t really explain what problem is the library trying to solve. It explains how it works and the API but not the broader context.
  5. There is no way Elixir Language or this community is going to get it right with all of us. Some things are going to go the way we want and others won’t… that is life too.
  6. Elixir, Erlang and OTP is not a silver bullet to every use case, consider using the right tool for the job. People aren’t moving away from Elixir. Maybe, they found a better tool for the job… well at least I think of it that way.

Wrapping up, for me, Elixir is a great programming language and this is a great community and us having this discussion is part of it. I encourage everyone to keep the hard work and contributions it this community which I a pretty sure is one of the best.

Thanks to you all for your contributions and help.

Best regards,

17 Likes

In the beginning it wasn’t hostile. Back in the days when we were all on IRC it was the best community I’d ever had a chance to be a part of. Then, the community moved here. Ever since then it does seem like the community has gotten more hostile. It’s hard to even put a finger on the exact thing that makes it feel that way, it just does.

1 Like

Then, the community moved here. Ever since then it does seem like the community has gotten more hostile.

Using chat compared to forum like this is really different way of communicating. In chat you usually write smaller post and can correct any miscommunication much faster.

It’s really easy to perceive someone’s bigger post as negative. Has happened to me so many times. Most of the time it seems people who perceived my posts as negative where native English speakers who “read between the lines”. Maybe it’s partly my Finnish nationality, because we don’t do small talk in this country.

So I think people reading these kind of bigger posts like in this forum should understand that people do communicate differently because of their backgrounds and English might not be their native language.

16 Likes

I’m not using elixir as my full time job, mostly I do go, ruby, and recently clojure. Leaving elixir for personal and freelancing projects. Does that making me as moved away from elixir?

I’m somewhat lucky to be part of a “decacorn” company, so I have experienced most arguments and worries about k8s at scale. My personal opinion is that k8s can be really useful in the context of beam as long as you put that beam app under container :smile:

K8s currently is more advanced in term of “cloud” usability than OTP solution.

I’m not using elixir as my full time job, mostly I do go, ruby, and recently clojure. Leaving elixir for personal and freelancing projects. Does that making me as moved away from elixir?

Sounds like you are using a ton of tools, and amongst them Elixir. That is the way to go in my opinion. The question is more about projects and companies who have used Elixir and then moved to something else, and explore the reasons why one would do so.

1 Like

I have to say I am somewhat upset and baffled by your comment Jeramy :slightly_frowning_face:

Just a few weeks ago I edited a misspelling of someone’s username from a post you made (a misspelling which could have been construed as insulting/hostile) and you objected to my doing so. I spent some time explaining why we intervene in situations like this (sometimes it’s simply to improve a post or correct a simple mistake, other times it might be to avert a potential confrontation or bad feeling from occurring). I did not reprimand you, or even bother you with it by PM’ing you - I simply put it down to a simple error on your part or one by auto-correct and rectified it hopefully before the other person saw it. So on the one hand you are complaining it’s hostile here, but on the other you want to be allowed (even if inadvertently) to be hostile/rude towards others? That just doesn’t make sense to me, and is upsetting because I spent some time explaining that we (i.e the mod team and many members of the forum) go to great lengths like this to ensure the community is not acrimonious, but friendly and welcoming.

I also agree with @wanton7, I think you may be confusing hostility with something else. Why? Because this forum has over 100,000 posts, and if hostility really was an issue it would be very easy to provide us with example after example of it occurring. Since such remarks can be damaging and unfair on the community, I really would prefer them to be substantiated with examples whenever possible - even if to help us properly identify and get to the root of the problem.

Having said that, I would love to explore what it is that is making you feel unhappy.

  • If by hostility you mean a resistance to your ideas (or the ideas of others) then this is not really people being hostile - it is simply others not liking or agreeing with those ideas. Sometimes the issue feels a lot worse when lots of others air their opposition (and this can, unfortunately, seem like one is being ‘ganged up’ upon, though that’s not the case at all - just people wanting to air their approval/disapproval just like everybody else).

  • If by hostility you mean others debating issues profusely, again this is not them being hostile - it could just be that others are as passionate about their stance as you are about yours.

On the first point, as I covered previously in this thread, I would personally see it as a failure on my part if I felt I have a really really good idea but was unable to get others on board. Sometimes I try (and try!) again, other times I weigh up whether it’s worth investing more time and effort into it - and sometimes I am convinced by others that my idea isn’t so great after all.

On the second point, now I agree that this can at times be very frustrating! But it can also be fun, interesting, and above all (for me anyway) educational. I have learned SO much from the extremely talented people here in the discussions and lengthy discussions we’ve had. I bet lots and lots of other people have too, because we simply don’t find them elsewhere (such as on more clinical platforms like Stack Overflow where discussions are routinely closed as ‘off-topic’). This is also what I imagine is one of the biggest differences from going from a chat room, to a forum platform - because forums are just much better equipped to host more in-depth discussions (because of features like being able to quote/multi quote, post links to references, etc). I’m also guessing this is the main issue, or the root of the issue, that you and Talentdeficit are referring to.

So what can we do?

The first thing I want to say is, please remember that none of us are perfect (you’re not either remember - remember the potentially insulting misspelling of the other member’s name? :lol:) and please also keep in mind that many people coming here will simply not have the kind of experience under their belt to know when a debate is starting to become draining on others. It takes you having to got to that stage yourself to realise it may be an issue for others.

We could lead by example? Whenever I have been involved in a debate, I generally try not being pedantic and only comment on (or correct) something where I feel it is important to do so - not every single or every little thing - but just what matters to move the discussion forward with the overall aim of progress. Often the minor details do not matter, the important things do. If it ever gets to the stage where I feel I am unable to convince the other person, I will generally lay out my position on the topic and then either leave the discussion or indicate how others might be able to form the same conclusion as me.

Apart from setting an example, I do feel it will be difficult to moderate or plan for this kind of thing - because doing so may be stifling. The last thing we want to do is make users feel like they need to continually think about every little thing they can or can’t say - that would hurt the flow and impact the enjoyment of being part of such an active community.

I actually think we have the balance pretty good right now - because remember that it is a delicate balance. However, we can always do better, and I would love to hear your ideas on how we could improve things. All I ask is that when putting forward any suggestions you keep in mind that we wouldn’t want to venture too far from conversations flowing naturally, and we wouldn’t want to have too many rules and regulations; participation on a forum should generally come naturally and be ‘easy’ :smiley:

16 Likes

And how do you prefer static typing overt dynamic typing :)?
I see https://safe-stack.github.io/ is using https://fable.io/ (F# -> JS)

This project is interesting

2 Likes

Interestingly this doesn’t seem to be my experience at all. Judging from the job boards, Germany is easily the second country with most Elixir jobs posted after the US, and I felt myself fortunate to be able to see so many Elixir jobs around when I’m looking for a job. In fact I only applied for Elixir dev jobs and got some offers already, which I feel would be hard if I were not in the US or in Germany. I feel happy that the German startup community seems to be really accepting of Elixir (The Berlin Elixir meetup has a lot of attendance). Maybe you speak of an earlier experience? in 2018/2019 there are quite some Elixir postings already.

Also maybe your company is a bit backwards but the German startup system is probably the most active in Europe already (not counting London), so I’m not sure if it’s “really frustrating and so much behind other countries”. At least I’m very glad that I didn’t have to do any whiteboarding/algorithm nonsense during all interviews.

3 Likes

Really? Then I have to watch again. Last time I looked was in late 2017. But I also have full-remote as hard requirement which is also still hard to find in Germany.

Since 2017, I touched 3 customer projects (all startups). One was fully NodeJS, the other is NodeJS but they consider going all in on Golang and the third is all Golang. 2 of them didn’t even know about Elixir at all.

Maybe I just had bad luck with our customers. But my boss also seems to struggle finding Elixir projects.

A little bit.

We have Ruby, Python and Java services where I work, with the latter gaining more and more clout due to… well, you know - company growth, enterprisey people being hired, etc.

Go has the best chance of being introduced as a “new language” to our stack. We have some aspiring Elixirists, but it’s really not happening at present. So I’ve put my free time into learning Go instead (for now). Elixir is the sexiest thing I’ve encountered in tech, but I’m not experienced enough to make a compelling argument to business.

And as amazing as the BEAM is, Crystal would be a better fit for what we’re doing - and for the engineers involved. For the exact same reason that there’s no way we’ll build a service in Crystal right now, but to a much smaller degree, it just isn’t Elixir’s time to enter our increasingly conservative engineering space right now.

And honestly, it makes sense why not.

Will still be hacking on random personal POC type things though :slight_smile:

1 Like

AstonJ, in this instance I wasn’t even talking or thinking about my qualms with the contents of our previous discussion. However since you went ahead and mentioned it I guess I should explain the name thing so everyone here doesn’t think that I was intentionally being a jerk to someone.

@OvermindDL1, I was responding to one of your replies over in a benchmarking thread and was going really fast and instead of greeting you as OvermindDL1 I typed Overlord (I can see how that could have been considered rude if I were intending to insult you, but you are probably by far the most helpful person on this forum so I doubt anyone here could even make up a reason to insult you on purpose). AstonJ edited the post before I even realized I’d typed the wrong screen name. I wasn’t to happy about that because I didn’t realize my mistake. I thought that I had typed Overmind instead of Overlord and that he was editing it to OvermindDL1.

3 Likes

I confirm what @SZJX is saying, not sure about the whole Germany, however in Berlin there are Erlang and Elixir opportunities. The Berlin Elixir meetup is also nice :slight_smile: :+1:

1 Like

Did not have the honor to meet you in person. Was looking to come to Zagreb last year, can’t recall the name of the event at the moment, but looking forward at the upcoming events.

1 Like