Simple System of Systems Network
Project description
SSSN — Simple System of Systems Network
A minimal Python framework for building composable, distributed AI agent networks.
Two abstractions. One graph.
System ──writes──► Channel ──reads──► System
A Channel is a typed, secured, persistent message store. A System is an autonomous agent that owns channels, wires itself to the network, and runs a tick loop.
Install
pip install sssn
Requires Python 3.10+.
Quick start
import asyncio
from sssn.channels.broadcast import BroadcastChannel
from sssn.core.system import BaseSystem
class Sensor(BaseSystem):
async def setup(self):
self.readings = BroadcastChannel(id="readings", name="Readings")
self.add_channel(self.readings)
async def step(self):
await self.write_channel("readings", data={"celsius": 22.4})
class Monitor(BaseSystem):
async def step(self):
msgs = await self.read_channel("readings")
for msg in msgs:
print(msg.content)
async def main():
sensor = Sensor(id="sensor", name="Sensor")
monitor = Monitor(id="monitor", name="Monitor")
await sensor.setup()
sensor.add_subsystem(monitor, channels=["readings"])
await asyncio.gather(sensor.launch())
asyncio.run(main())
Channel types
| Channel | Pattern |
|---|---|
BroadcastChannel |
Fan-out — every consumer sees every message |
WorkQueueChannel |
Competing consumers — each message claimed once |
MailboxChannel |
Per-recipient inbox |
PeriodicChannel |
Active poll loop for external data sources |
DiscoveryChannel |
Service registry with TTL-based expiry |
PassthroughChannel |
Base class — inline write, no loop |
Documentation
Full documentation at sssn.one:
- Concepts — Channel, System, Security, Transport
- Tutorials — Step-by-step from first channel to secured multi-system network
- Examples — Data pipeline, request-response, service discovery
Development setup
git clone https://github.com/Productive-Superintelligence/sssn.git
cd sssn
pip install -e ".[dev]"
pytest
Build and preview the docs locally:
pip install -e ".[docs]"
mkdocs serve # http://127.0.0.1:8000
mkdocs build --strict # production build → site/
Release
# 1. Bump version in pyproject.toml, then:
python -m build
python -m twine upload dist/*
# 2. Tag and push
git tag -a v0.0.1 -m "Release 0.0.1"
git push origin main --tags
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sssn-0.0.1.tar.gz.
File metadata
- Download URL: sssn-0.0.1.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79e8d1830e57cdec9d3b08f32dbeb7ce261ac657915231f77fe63e8b2ad94a88
|
|
| MD5 |
b5fe8e699e6f401266b76cfcef3c631e
|
|
| BLAKE2b-256 |
a8fa824f5ae4bbb437fb03a0c97b8f25b97909d86d105beb94cf0b422b344a52
|
File details
Details for the file sssn-0.0.1-py3-none-any.whl.
File metadata
- Download URL: sssn-0.0.1-py3-none-any.whl
- Upload date:
- Size: 45.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9a446dc74907b796c6fb5db6bc66733690540d9c6ec58625badf167d0e08a609
|
|
| MD5 |
f72fe055bef74880304b76c54bac2068
|
|
| BLAKE2b-256 |
fdad4b9f0646b8f1393e8c4e24a56c2fe6c621572bbfe5992d03993b964feb39
|