What does soft realtime mean?
Cynics will say “basically nothing”. A hard realtime system is one which can guarantee that a certain action will always be carried out in less than a certain time. Many simple embedded systems can make hard realtime guarantees, e.g. it is possible to guarantee that a particular interrupt service routine on a Z80 CPU will never take more than 34us. It gets progressively harder to make such guarantees for more complex systems. Many telecomms systems have less strict requirements, for instance they might require a statistical guarantee along the lines of “a database lookup takes less than 20ms in 97% of cases”. Soft realtime systems, such as Erlang, let you make that sort of guarantee. A rule of thumb is that it is straightforward to write Erlang programs which can respond to external events within a few milliseconds. The parts of Erlang which help with this are: • Language features which make it hard(er) for programmers to roughly estimate performance were never added to Erlang. For ins