Thespian is a Python library providing a framework for developing concurrent, distributed, fault tolerant applications.
Thespian is built on the Actor Model which allows applications to be written as a group of independently executing but cooperating "Actors" which communicate via messages. These Actors run within the Actor System provided by the Thespian library.
All Actors run independently within the Actor System. The Actor System may run the Actors as threads, processes, or even sequential operations within the current process—all with no change to the Actors themselves.
Actors run independently…anywhere. Multiple servers can each be running Thespian and an Actor can be run on any of these systems—all with no change to the Actors themselves. Thespian handles the communication between the Actors and the management process of distributing the Actors across the systems.
Because Actors run independently anywhere, they run independently of their actual location. A distributed Actor application may have part of it running on a local server, part running on a server in Amsterdam, and part running on a server in Singapore… or not, with no change or awareness of this by the Actors themselves.
Individual Actors can fail and be restarted—automatically—without impact to the rest of the system.
The number of Actors in the system can be dynamically extended based on factors such as work volume, and systems added to the Distributed Actor System environment are automatically utilized.
One of the key aspects of the Actor Model is that it represents a higher level of abstraction than is provided by most frameworks. When writing an Actor-based application, the concurrency and transport layers are completely abstracted, which both simplifies the design and allows the concurrency or transport to be changed in the future without requiring changes in the Actor-based application.
The above qualities of Actor programming make it ideally suited for Cloud-based applications as well, where compute nodes are added and removed from the environment dynamically.
History-------Thespian was developed at GoDaddy as part of the support for GoDaddy'sdedicate and virtual server product line. At one point, Thespian washelping to manage 10,000 physical servers via a combination ofon-server and remote actors.The primary Thespian author (Kevin Quick) is no longer working atGoDaddy, but through GoDaddy's willingness to open-source the Thespiancode and transfer the rights to this author, this repository is stillbeing maintained and developed. With heartfelt thanks to the Vertigoteam at GoDaddy, this Python Actor model has been developed andrefined to provide a highly functional library for general use.