You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I confess, I am a fan of event based architectures (like event sourcing). In order to do so we need to persist events.
But I also believe conflict resolution is easier with these kind of events. If we have an agenda who did what action and when, we have a timeline and can rebuild everything. The order of events is the same for every user of the outliner. This means another layer of abstraction because we first have to create the events and then handle them. The handler takes the events in a determined order no matter of the source (api, script, app ...). Therefore I believe our building blocks get more loosely coupled with this approach.
We are using already events in the frontend-backend communication but we need specified persisted events in the backend only. Since we are using Elixir we do not need to use an external tool like Kafka. Currently I see only a small amount of event types:
Create Node
-- time, content, editor
Update Node
-- time, old content, new content, editor
Delete Node
-- time, node id, editor
Move Node
-- time, old parent node, new parent node, editor
The text was updated successfully, but these errors were encountered:
I confess, I am a fan of event based architectures (like event sourcing). In order to do so we need to persist events.
But I also believe conflict resolution is easier with these kind of events. If we have an agenda who did what action and when, we have a timeline and can rebuild everything. The order of events is the same for every user of the outliner. This means another layer of abstraction because we first have to create the events and then handle them. The handler takes the events in a determined order no matter of the source (api, script, app ...). Therefore I believe our building blocks get more loosely coupled with this approach.
We are using already events in the frontend-backend communication but we need specified persisted events in the backend only. Since we are using Elixir we do not need to use an external tool like Kafka. Currently I see only a small amount of event types:
Create Node
-- time, content, editor
Update Node
-- time, old content, new content, editor
Delete Node
-- time, node id, editor
Move Node
-- time, old parent node, new parent node, editor
The text was updated successfully, but these errors were encountered: