I have a domain_event_entry table which is growing exponentially and consuming almost 75% of size of the database - volume of the table also affects the performance in retrieving the events
There are some event which are very old and of no use anymore and ideally I would like to hard delete them from the table. Is it possible to simply delete them?
Note that there is no snapshotting implemented yet
the problem of deleting past domain events lies in the fact that they can potentially be used to reconstruct the state of the aggregates if they are modified in the future. Therefore, even if the events are very old, it is not safe to delete them unless the related aggregates have also been deleted.
The problem of exponential growth in the events table is quite common when implementing event-driven systems. For this reason, I recommend using a dedicated tool like Axon Server, a platform specifically designed to handle a high number of events and ensure excellent performance even when the event store reaches considerable size.