chore: refactoring and docs
This commit is contained in:
28
README.md
28
README.md
@@ -1,30 +1,46 @@
|
||||
# SPORE
|
||||
|
||||
SProcket ORchestration Engine
|
||||
> SProcket ORchestration Engine
|
||||
|
||||
SPORE is a simple cluster engine for ESP8266 microcontrollers.
|
||||
|
||||
## Features
|
||||
|
||||
- WiFi STA / AP
|
||||
- node auto discovery over UDP
|
||||
- auto discovery over UDP
|
||||
- service registry
|
||||
- pub/sub event system
|
||||
- Over-The-Air updates
|
||||
|
||||
## Supported Hardware
|
||||
|
||||
- ESP8266
|
||||
- ESP-01
|
||||
|
||||
## Architecture
|
||||
|
||||
### Components
|
||||
|
||||
The core architecture consists for following components:
|
||||
|
||||
- Network Manager: WiFi connection handling
|
||||
- Cluster Manager: node discovery and memberlist management
|
||||
- API Server: HTTP API for interacting with node and cluster
|
||||
- Task Scheduler: internal scheduler used for system and user defined tasks
|
||||
|
||||
### Auto Discovery
|
||||
|
||||
A node periodically executes 2 tasks responsible for auto discovers:
|
||||
A node periodically executes 2 tasks responsible for auto discovery:
|
||||
|
||||
- send discovery: send UDP packet on broadcast address to discover nodes
|
||||
- listen for discovery: receive UDP packets and send response back to the node who initiated discovery
|
||||
|
||||
Discovered nodes are added to the so cluster memberlist.
|
||||
Another periodic task will then call the `/api/node/status` endpoint over HTTP on each node in the memberlist to get detailed informations about the node (e.g. freeHeap, available API endpoints).
|
||||
Discovered nodes are added to the so clusters memberlist.
|
||||
Another periodic task will then call the `/api/node/status` endpoint over HTTP on each node in the memberlist to get system resources and available API endpoints.
|
||||
|
||||
### Event System
|
||||
|
||||
The `NodeContext` implements an event system for publishing and subscribing to local and cluster wide events (TODO).
|
||||
It is used internally for communication between different components and tasks.
|
||||
|
||||
## Develop
|
||||
|
||||
|
||||
Reference in New Issue
Block a user