Product

One backend for every agent access pattern.

Store context, stream state changes, and run compiled queries through one API key. No message queues to configure, no caches to expire, no stitching.

Three layers. One interface.

Store
Document and vector data

Agents write context objects, session state, and embeddings to one document layer. Indexed reads return in under 2ms at p99. Existing vector databases target batch retrieval, not the continuous read-write cadence of a decision-making agent loop.

Stream
Real-time pub/sub streaming

State changes reach subscribed agents as soon as they are written. LaserData co-locates streaming with storage, removing the cross-service hop between a write and its event. Pub/sub works through WebSocket or SSE.

Query
Compiled query engine

Multi-step agent access patterns, joins across context namespaces, and conditional filters compile into single-pass execution plans. The planner eliminates the N+1 reads generic databases generate when agents chain lookups across sessions.

Agent SDK Python / TypeScript / REST LASERDATA CORE Store doc + vector Stream pub/sub bus Query compiled plans Storage layer (co-located) NVMe SSD, memory-mapped indexes Your agents read / write / subscribe

Sub-10ms read latency

Internal benchmarks against our production cluster, using a single-region deployment and agent-workload traffic.

p50
2.1 ms
p95
5.8 ms
p99
9.3 ms

Results cover 500,000 benchmark runs in one region. The traffic mix was 60% point reads, 25% filtered scans, and 15% multi-step joins.

Data model tour

Three examples of LaserData's intended access patterns.

python
# Store agent context with namespacing
client.store(
  namespace="research-agent",
  key=f"session:{session_id}",
  data={
    "step": 4,
    "sources_checked": ["arxiv", "web"],
    "confidence": 0.87
  },
  ttl_seconds=3600
)

# Read back in under 2ms
ctx = client.get("research-agent", f"session:{session_id}")
python
# Subscribe to state changes as they happen
async for event in client.stream(
  namespace="research-agent",
  filter={"step__gte": 3}
):
  print(event.key, event.data["confidence"])
  # Events arrive <1ms after write
  # No polling, no separate event bus to manage
python
# Multi-step query with compiled execution plan
results = client.query(
  namespace="research-agent",
  filter={
    "confidence__gte": 0.8,
    "step__in": [3, 4, 5]
  },
  order_by="-confidence",
  limit=10
)
# Compiled to single-pass scan, not N+1 lookups
# Returns in <6ms at p95 on 50M records

Build in less than five minutes

Free tier, no card required. Generate your first API key in 30 seconds.