Datastore
Actionbase builds on proven storage technologies, leveraging their strengths while adding value through graph modeling and write-time optimization. The datastore abstraction layer allows integration with different backends.
Datastore Abstraction
Section titled “Datastore Abstraction”Actionbase abstracts storage operations through a minimal interface, enabling integration with various backends. By building on established technologies, Actionbase leverages their reliability, scalability, and performance while focusing on interaction-specific capabilities.
Required Operations
Section titled “Required Operations”A datastore backend must support:
| Operation | Description |
|---|---|
| get | Retrieve value(s) by key(s) |
| delete | Delete a value by key |
| scan | Range scan with prefix, start, stop, limit |
| checkAndMutate | Atomic check-and-mutate for consistency |
| batch | Batch mutations (optional, recommended) |
This interface is intentionally minimal. Any backend implementing these operations can be integrated.
Supported Backends
Section titled “Supported Backends”HBase is the production datastore backend for Actionbase. It’s a distributed, scalable NoSQL database built on HDFS.
| Characteristic | Description |
|---|---|
| Horizontal Scalability | Shards data across nodes, linear scaling |
| Strong Durability | Data replicated across nodes |
| Low-latency Access | Optimized for random reads and writes |
| Automatic Load Balancing | Even distribution across cluster |
| Proven at Scale | Used for petabyte-scale data |
HBase requires expertise when used directly:
- Row key design
- Column family organization
- Region splitting and compaction
- Cluster management
Actionbase provides:
- HBase’s durability, scale, and distribution
- Simpler usability through high-level abstraction
- Interaction-specific features (State/Index/Count)
For HBase configuration, see HBase Operations.
Memory
Section titled “Memory”Memory is an in-memory backend for development and testing.
| Characteristic | Description |
|---|---|
| Easy Setup | No configuration required |
| No Persistence | Data lost on server stop |
| Fast | In-memory operations |
Ideal for local development, testing, and prototyping.
SlateDB (Planned)
Section titled “SlateDB (Planned)”SlateDB is a planned backend for small to medium-scale deployments.
| Characteristic | Description |
|---|---|
| Lower Complexity | Simpler setup and maintenance |
| Resource Efficiency | Less infrastructure overhead |
| Transactional Support | Suitable for smaller workloads |
How Actionbase Uses Datastore
Section titled “How Actionbase Uses Datastore”Actionbase maps its operations to datastore operations:
| Actionbase Operation | Datastore Operation | Data Structure |
|---|---|---|
| Get Query | get | EdgeState |
| Scan Query | scan | EdgeIndex |
| Count Query | get | EdgeCounter |
| Mutation (lock) | checkAndMutate | Lock |
| Mutation (write) | batch / put | State, Index, Counter |
| Mutation (cleanup) | delete | Old indexes |
By building on proven storage, Actionbase focuses on interaction-specific features while the underlying datastore handles persistence, replication, and scalability.
Choosing a Backend
Section titled “Choosing a Backend”| Backend | Use Case | Scale |
|---|---|---|
| HBase | Production | Large |
| SlateDB | Production (planned) | Small to Medium |
| Memory | Development | Local |
Next Steps
Section titled “Next Steps”- Data Encoding: How data is encoded in the datastore
- HBase Operations: HBase configuration guide
- Local Provisioning: Get started locally