This paper presents an engine with the following properties:
- Agents-based computation (components communicate to each other through messages)
- Agents are state-machines
- Agents communicate in an asynchronous mode
- Waiting agents don’t block computer treads (asynchronous programming)
- Engines live in an interactive environment
- Engines of agents are distributed allowing messages from remote locations
- Agents can be created, modified and ended without requiring restarting the process.
- Uses F# interactive environment (Read, Evaluate, Print Loop (REPL). This allows interaction and modification of agents without stopping the process.
- Remote clients can send messages to the engine’s agents including creating and ending agents.
- Remote clients can use several communication protocols, available in WCF, to communicate with the engine including pipes, TCP and HTTP.
- Asynchronous programming provides great performance and scalability.