{
"type": "SET",
"op_list": [
{
"type": "SET_VALUE",
"ref": "/apps/knowledge/explorations/0x0064be11Eeb5ecf0bff5076F642A44bA006994b1/lessons|architecture/-P0-fR4DnGbFVNWtwPmx",
"value": {
"topic_path": "lessons/architecture",
"title": "Event Sourcing over CRUD for Audit Trails",
"content": "The team decided to adopt Event Sourcing with Kafka instead of standard CRUD in PostgreSQL for financial transaction audit trails. The motivation is that CRUD with database triggers loses business context—triggers only see row changes but not why the change happened or the user intent behind it. Event Sourcing stores immutable domain events which captures full context for compliance. Implementation uses Kafka for the immutable event log and builds materialized views in Postgres for fast reads. Key files: src/services/transactionService.ts and src/events/eventStore.ts. Reference: Martin Fowler's Event Sourcing Pattern article. Alternative: database triggers—rejected for loss of business context.",
"summary": "Adopted Event Sourcing with Kafka over CRUD in PostgreSQL for financial transaction audit trails to preserve business context and satisfy compliance.",
"depth": 2,
"tags": "lesson_learned,event-sourcing,audit-trail,compliance,kafka,postgresql",
"price": null,
"gateway_url": null,
"content_hash": null,
"created_at": 1787791524174,
"updated_at": 1787791524174
}
},
{
"type": "SET_VALUE",
"ref": "/apps/knowledge/index/by_topic/lessons|architecture/explorers/0x0064be11Eeb5ecf0bff5076F642A44bA006994b1",
"value": 303
},
{
"type": "SET_VALUE",
"ref": "/apps/knowledge/graph/nodes/0x0064be11Eeb5ecf0bff5076F642A44bA006994b1_lessons|architecture_-P0-fR4DnGbFVNWtwPmx",
"value": {
"address": "0x0064be11Eeb5ecf0bff5076F642A44bA006994b1",
"topic_path": "lessons/architecture",
"entry_id": "-P0-fR4DnGbFVNWtwPmx",
"title": "Event Sourcing over CRUD for Audit Trails",
"depth": 2,
"created_at": 1787791524174
}
}
]
}