This document describes a new computational model called shadow computing that provides fault tolerance in an energy-efficient manner. It proposes a technique called shadow replication where a main process is associated with shadow processes that execute the same task at lower speeds. If the main process fails, a shadow process takes over at a higher speed to meet deadlines while minimizing energy. An optimization framework is developed to determine the execution speeds of the main and shadow processes to minimize overall energy consumption while providing fault tolerance within targeted response times.