One important key aspect of Erlang programs is to identify where
your Stable state is in the program. Stable state is what you
can trust. What you can trust is what you can build on. Joe
Armstrong defines one of the key aspects of an Erlang system as
Stable Storage. A place where we can push data and be sure it
won't change. If we verify data before pushing, we can trust
those data a great deal. This is important. If our system
partially crashes, as is the norm for Erlang programs, it may be
necessary to reconstruct state. Stable storage provides the
basis from which we can re-read data into memory. Even if
recreating data is expensive, you may still want a cache to be
able to reconstruct your state faster from disk. Persistent
store on a disk is among the best way to make sure data is
there. In a BitTorrent client like eTorrent for instance, we
only worry about the file. If we download a piece of a file and
that pieces pass the BitTorrent SHA1 integrity check, we can now
regard that part as "safe" write to s