Skip to main content

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