Mycelia is a task based interservice (interagent) communication system. It solves problem of creating and executing multi steps, interconnected and very dependency heavy workflows along with data management in these workflows and interservice (interagent) communication.
You can clone latest version fron git.
UV_GIT_LFS=1 uv add "https://github.com/smthngslv/mycelia.git[logfire,rabbitmq,postgres,postgres-migrations]"After that you need to create account in Logfire and run
logfire authIt will open browser window and you can authenticate there. Then on very first run with you will be asked to select/create project.
Start postgres and rabbitmq:
docker compose -f ./docs/docker-compose.yaml up -dInitialize postgres:
mycelia-postgres-storage-alembic -x url=postgresql+asyncpg://mycelia:mycelia@localhost/mycelia upgrade headRun example (server):
python ./docs/example.py serverRun example (client):
python ./docs/example.py clientIn server console you will see:
Hello from `get_random_number#G`, number is 2!
Hello from `get_random_number#H`, number is 1!
Hello from `get_random_number#I`, number is 2!
Hello from `get_random_number#A`, number is 1!
Hello from `get_random_number#C`, number is 1!
Hello from `get_random_number#B`, number is 1!
Hello from `get_random_number#E`, number is 2!
Hello from `get_random_number#D`, number is 2!
Hello from `get_random_number#F`, number is 1!
Hello from `get_random_number#Meow`, number is 1!
Hello from `print_numbers`, numbers are (2, 1, 2)!