Concurrency As A Service
The project aims to make handling of asynchronous processes in easy way.
Implementation is heavily inspired by CSP and Go.
Packages overview
async
This package is responsible for asynchronous execution of the code. It's the same stuff as async/await, but implementation is stateless.
The state of the code is stored in database and code execution is resumed when callback is triggered.
slt (select)
This package is responsible for synchronisation of the code execution. It's the same stuff as Golang select statement, but implementation is stateless.
The state of all senders/receivers is stored in database, and when new sender/receiver is added - we try to find who can send/receive on other end of the channel.
When message is sent/received - callback is called for both sender/receiver to resume their execution.