Erlang / Erlang Basics Interview questions
Which is better for state management, ETS or process dictionaries, and why?
A process dictionary (put/2, get/1) is per-process mutable key-value
storage that bypasses Erlang's usual immutability, private to that one process only. ETS is a separate
in-memory table that can be shared and accessed concurrently across many processes.
ETS is generally the better choice whenever more than one process needs the data, since the process
dictionary is invisible outside its owning process and can't be shared without message passing anyway. Even
within a single process, most experienced Erlang developers avoid the process dictionary except for narrow
cases (some tracing/debugging helpers, or caching a value purely local to that process's own logic), because
it silently breaks the functional, traceable style the rest of the language encourages — a function
reading get(some_key) has a hidden dependency that isn't visible in its arguments.
So: ETS for anything shared or sizeable; process dictionary only for small, genuinely process-local state where passing it explicitly through function arguments would be needlessly awkward.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
