3 ms·
When you say 'execute their functionality in-process', what exactly do you mean? In the context of the current process? Are there any good resources explaining
by anonymousDan 3y ago
When you say 'execute their functionality in-process', what exactly do you mean? In the context of the current process? Are there any good resources explaining when it is more appropriate to do one over the other?
- thibaut_barrere 3y agoOne example is HTTP libraries. For instance, take Mint (https://github.com/elixir-mint/mint https://github.com/elixir-mint/mint): > Mint is different from most Erlang and Elixir HTTP clients because it provides a process-less architecture. Mint is a low-level library which doesn't make attempt to manage processes (including HTTP pooling). In contrast, Finch (which builds on top of Mint) includes pool management: https://github.com/elixir-mint/mint#connection-management-and-pooling https://github.com/elixir-mint/mint#connection-management-an... It can take someone a bit off guard when they realise that the library they use provide a "default pool" they were not aware of, and that it can become a bottleneck etc.
- anonymousDan 3y agoGreat, thanks for that I'll take a look.
- iudqnolq 3y agoThere's a library for embedding inline svg icons. You call it with a string name in your html template and get back a string svg. It was originally implemented as a single GenServer. When you app started up it'd read the filesystem and create a map of svg name => svg contents in a process. Then each lookup call would send a message to that process and get back the contents. This has had the flaw of making template rendering single threaded. It's far worse than a file read per lookup