Core interface
public interface AgentRegistry {
void register(AgentDescriptor descriptor);
Optional lookup(String name);
List findByCapability(String cap);
void deregister(String name);
} Advertisement
What a descriptor holds
- Name (unique)
- Endpoint URL
- Capabilities list
- Version
- Health status
- Metadata (owner, tags, etc.)
Advertisement
Backing stores
In-memory for single-process. Redis/etcd for HA. DynamoDB or Postgres for durability. Choose based on scale + churn rate.
Registration lifecycle
Agent registers on boot. Heartbeats every N seconds. Auto-deregisters after 3 missed heartbeats. Prevents zombies.