How kgcorner/aquila works
Aquila is an in-memory distributed cache with a balancer/receptionist front end and main/backup storage nodes. The client workflow accepts GET, SET, PUT, and DEL requests, routes them through key-to-node metadata, and returns node results; INFO reports node counts. Main nodes replicate writes and deletes to configured backups. The graph reflects the sampled request and node code; load balancing, node lifecycle, and health monitoring are included from the repository structure and documented class responsibilities, but their unsampled wiring is not inferred.
Main entry points: Receptionist.java Receptionist · Server.java Node Server · BalancerServer.java Balancer Server · Util.java Node Network I/O
Components 17
Client Interface
- Receptionist
balancer/src/main/java/com/kgaurav/balancer/Receptionist.java - Request Protocol
balancer/src/main/java/com/kgaurav/balancer/model/Request.java - Response Protocol
balancer/src/main/java/com/kgaurav/balancer/model/Response.java - Balancer Network I/O
balancer/src/main/java/com/kgaurav/balancer/util/Util.java
Balancing And Routing
- Balancer Startup
balancer/src/main/java/com/kgaurav/balancer/Application.java - Balancer Server
balancer/src/main/java/com/kgaurav/balancer/BalancerServer.java - Key Routing
balancer/src/main/java/com/kgaurav/balancer/KeyStore.java - Node Metadata
balancer/src/main/java/com/kgaurav/balancer/model/Node.java
Node Storage
- Node Startup
node/src/main/java/com/kgaurav/kmem/Application.java - Node Server
node/src/main/java/com/kgaurav/kmem/Server.java - Stored Item
node/src/main/java/com/kgaurav/kmem/model/Item.java - Memory Store
node/src/main/java/com/kgaurav/kmem/data/Store.java - Node Commands
node/src/main/java/com/kgaurav/kmem/model/Command.java - Node Network I/O
node/src/main/java/com/kgaurav/kmem/Util.java
Replication And Health
- Backup Registry
node/src/main/java/com/kgaurav/kmem/data/SyncSystem.java - Node Monitor
node/src/main/java/com/kgaurav/kmem/Stethoscope.java
Other components
- Cache Client
Connections 25
- Cache Client → Receptionist: sends requests
- Receptionist → Request Protocol: parses
- Receptionist → Key Routing: routes keys
- Receptionist → Balancer Server: selects node
- Receptionist → Balancer Network I/O: forwards commands
- Balancer Network I/O → Node Server: sends commands
- Node Server → Node Commands: decodes commands
- Node Server → Memory Store: reads or mutates
- Memory Store → Stored Item: stores items
- Node Server → Node Network I/O: returns results
- Node Network I/O → Receptionist: returns responses
- Receptionist → Response Protocol: forms client result
- Response Protocol → Cache Client: returns result
- Balancer Startup → Balancer Server: starts server
- Balancer Startup → Receptionist: deploys listener
- Balancer Server → Node Startup: starts nodes
- Node Startup → Node Server: starts listener
- Node Server → Node Network I/O: registers node
- Node Network I/O → Balancer Server: sends registration
- Balancer Server → Node Metadata: tracks nodes
- Receptionist → Key Routing: assigns key metadata
- Node Server → Backup Registry: reads backups
- Node Server → Node Network I/O: sends replicated writes
- Backup Registry → Node Metadata: lists backup targets
- Node Monitor → Backup Registry: updates node set