We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Agents are very similar to the GenServer but they don’t deal with messages, they deal with: Agent.start_link() Agent.update() Agent.get()
This can send and receive data and will help you create many things that a GenServer could.
ETS is Erland Term Storage This is a way to create a storage system the has many of the feature that you can set in a Schema or other data types. :ets.new() :ets.insert() :ets.lookup() are just a few of the features that we will use. The configuration of the table is where many of the key features come in. You can allow only 1 value for each key, you can set read and write access control, even order the set to name a few.
While using Agents you might run into issue with what is called a Race Condition: IE two processes try to access a database or counter at the same time and only one of the actions are shown.
That is where Caches come in. Storing the values needed into a Map you can access values as needed and store all values that are being done on the system.
We can then create a Cache with 3 different styles: ETS, Agent, and GenServer.