25 lines
782 B
SQL
25 lines
782 B
SQL
-- Create keyspace
|
|
CREATE KEYSPACE IF NOT EXISTS event_store
|
|
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};
|
|
|
|
USE event_store;
|
|
|
|
-- Create events table
|
|
CREATE TABLE IF NOT EXISTS events (
|
|
aggregate_id text,
|
|
version int,
|
|
event_type text,
|
|
payload text,
|
|
created_at timestamp,
|
|
PRIMARY KEY (aggregate_id, version)
|
|
) WITH CLUSTERING ORDER BY (version ASC)
|
|
AND comment = 'Event store for domain events'
|
|
AND compaction = {'class': 'LeveledCompactionStrategy'}
|
|
AND gc_grace_seconds = 864000;
|
|
|
|
-- Create index on event_type for querying
|
|
CREATE INDEX IF NOT EXISTS events_event_type_idx ON events (event_type);
|
|
|
|
-- Create index on created_at for time-based queries
|
|
CREATE INDEX IF NOT EXISTS events_created_at_idx ON events (created_at);
|