What does it mean to be good with IO?

I’ve seen people mention on discussions that elixir is good for IO, but I’m not sure what that means

Does it mean elixir is good for I/O intensive applications?

Does it mean elixir is good for I/O intensive applications?

I always understood it this way, with a focus on web services.

2 Likes

I believe what is usually meant is that Elixir is good at providing I/O-bound services to a large group of users that simultaneously use the system (and should not be able to impact each-other’s use of the system).

‘I/O-bound’ here means that for each user, the lightweight green thread (usually called a ‘BEAM Process’ in Elixir terms) serving that user will spend a lot of its time manipulating sockets, databases, files, et cetera. Whenever, during such a manipulation, the process needs to wait for more information to arrive (AKA the I/O ‘blocks’), the Elixir schedulers are smart enough to serve other BEAM processes in the meantime.

5 Likes