My first question is what does ETS add on top of just storing state in a GenServer?
In the documentation I see it is used as a “cache”, does this mean it won’t always return the latest data?
There’s a warning in the Elixir guide about using it prematurely:
Warning! Don’t use ETS as a cache prematurely! Log and analyze your application performance and identify which parts are bottlenecks, so you know whether you should cache, and what you should cache. This chapter is merely an example of how ETS can be used, once you’ve determined the need.
I don’t have any performance issues at this time? Does this mean ETS should not be used? What are the downsides of using ETS?