WAL Full Transaction Flow
This diagram shows the complete lifecycle of a Write-Ahead Log transaction in Prism, including:
- Client authentication and authorization
- Write operations to WAL
- Async database application
- Session disconnection scenarios
- Crash recovery
Sequence Diagram
State Transitions
Error Scenarios and Recovery
Key Components
Session Store Schema
session:
session_id: uuid
client_id: string
created_at: timestamp
last_activity: timestamp
ttl: integer (seconds)
permissions: json
metadata:
ip_address: string
user_agent: string
connection_type: "mTLS" | "OAuth2"
WAL Message Schema
wal_message:
client_id: string
namespace: string
key: string
operation: "insert" | "update" | "delete"
data: bytes
timestamp: int64
checksum: string (SHA256)
idempotency_key: uuid
metadata:
partition: int
offset: int64
Checkpoint Schema
checkpoint:
consumer_id: string
topic: string
partition: int
offset: int64
timestamp: int64
message_count: int64
Metrics
# WAL lag (critical for monitoring)
prism_wal_lag_seconds{namespace="orders"} 0.15
# Unapplied entries
prism_wal_unapplied_entries{namespace="orders"} 10
# Session metrics
prism_active_sessions{proxy="proxy-1"} 1250
prism_session_expirations_total{reason="timeout"} 45
prism_session_expirations_total{reason="network_error"} 12
# Auth metrics
prism_auth_requests_total{result="success"} 50000
prism_auth_requests_total{result="forbidden"} 120
# Write latency (target: <2ms)
prism_wal_write_latency_seconds{quantile="0.99"} 0.0018
# DB apply latency
prism_db_apply_latency_seconds{quantile="0.99"} 0.015
References
- RFC-009: Distributed Reliability Data Patterns (Write-Ahead Log Pattern)
- ADR-002: Client-Originated Configuration
- ADR-035: Connection Pooling and Resource Management