-
Notifications
You must be signed in to change notification settings - Fork 0
Event Store
Pau F. Grau edited this page Jan 9, 2021
·
3 revisions
The Event Store is the authoritative data source. All events are stored using an append-only operation.
We use a MySQL database for store all events
CREATE TABLE IF NOT EXISTS `event_store` (
`id` char(36) COLLATE utf8mb4_0900_ai_ci NOT NULL,
`aggregate_id` varchar(255) COLLATE utf8mb4_0900_ai_ci NOT NULL,
`version` mediumint(8) UNSIGNED NOT NULL,
`name` varchar(255) COLLATE utf8mb4_0900_ai_ci NOT NULL,
`payload` json NOT NULL,
`priority` tinyint(1) NOT NULL,
`is_publishable` tinyint(1) NOT NULL,
`occurred_on` datetime(6) NOT NULL,
PRIMARY KEY (`id`),
KEY `event_store_name_idx` (`name`),
KEY `event_store_name_aggregate_idx` (`aggregate_id`,`name`),
KEY `event_store_name_occurred_idx` (`name`,`occurred_on`),
KEY `event_store_occurred_idx` (`occurred_on`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
We use a Doctrine DBAL Store.