How long have you been using/learning Erlang or another BEAM language?
Also, don’t forget to add this info to your profile too!
How long have you been using/learning Erlang or another BEAM language?
Also, don’t forget to add this info to your profile too!
9 years professionally, 13 years since the first time I’ve played with it!
Professionally for over 23 years, six months longer than it’s been open source.
I started both learning and using Erlang professionally in 2008.
Yeah, they hired me because I knew some Haskell
Erlang since mid 2015, was introduced to it by my then colleague Henry Thor who I don’t think is on here yet. Eternally thankful for the introduction
Since around 2000. I’ve got a system that’s been up and running for 2 decades now, with a major rewrite around 2010.
Can you share some details about what kind of app/system it is please Garry? I am sure I won’t be the only one curious
It is a system used for network security. It aggregates information from a variety of feeds from Internet registries, BGP data, stuff like that, and makes it available for query by other systems doing threat analysis. There is a web based UI, but most of the usage is from automated systems. It runs on a cluster of mostly identical Linux machines, with one assuming the role of master at a time. If that one fails, another takes its place, using Erlang’s distributed application feature. None of this is unusual these days, but in 2000 it was pretty bleeding edge.
Was it inspired by token-ring, with some sort of leader election?
This sounds very interesting! I’m a network engineer at $day_job and my team deals a lot with internet registries and other sorts of BGP data. Is any of this up on github or someplace similar?
No, it was all proprietary. I am now retired, and no longer have access to any of it. But I hear it lives on, with a former colleague maintaining and enhancing it, and it is apparently heavily used and relied upon. My legacy in retirement.
Darn! That sounds extremely interesting and potentially educational since it aligns so well with my day job. But I guess it gives me something I might be able to work on down the road as my Erlang skills improve.
No, it was a pretty simple use of Erlang’s “distributed application” feature. Each node ran the same code, except the master ran one additional application. If the master failed, Erlang would ensure that this application would then run on another node. This application would then become master, acquire the virtual IP, and accept and delegate requests to the other nodes. It was nice because we never had to take the system down for our tri-monthly code upgrades. Just shut down a node, install new code, bring it back up, repeat until done. When you did this on the master, another would take over. Again, none of this is earthshaking nowadays, but 20 years ago it was pretty cool, and Erlang made it so easy it made me look a lot smarter than I was. Thanks, Erlang!