Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Ever run into a really gnarly data problem and wished you had a do-over? Tired of wrestling with ActiveRecord to model a really complex domain? Looking for a good way to echo state changes to external systems? Then grab a cup of joe and settle in for a look at event-sourcing your data. Event-sourced data uses Plain Old Ruby Objects (POROs) to model your data and exclusively uses events to mutate state on those objects. By serializing the events, the state of your data can be recreated for any point in time, and outside listeners can create specialized purposeful datastores of the data, enabling complex business requirements with fewer hassles. We'll also touch on other architectural patterns like DCI and CQRS that play well with this idea.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In the presentation titled **'Use the Source, Luke: High-fidelity history with event-sourced data'**, Keith Gaddis explores the concept of event sourcing as an architectural pattern for managing application state. Event sourcing captures state changes in the form of events, allowing for a detailed history of data changes that can be replayed to reconstruct the state at any given time. ### Key Points Discussed: - **Definition of Event Sourcing**: Gaddis articulates that event sourcing involves capturing all changes to application state as a sequence of events, essentially version-controlling data by using serialized events. - **Benefits of Event Sourcing**: - **Historical Reconstruction**: Ability to recreate application state at any moment in time. - **Business Logic Corrections**: Bug fixes can be handled by replaying events up to the point of the issue, allowing corrections without disturbing the current state. - **Complex Analytics Support**: Event sourcing aids in managing complex domains, as evidenced by the speaker's experience in medical billing—enabling complex report generation without needing to adhere to unwanted and restrictive schemas. - **Decoupled System Architecture**: Non-domain related logic (like service calls) can be separated from business logic through event listeners. - **Common Use Cases**: Gaddis highlights that event sourcing is beneficial in: - **Financial and Accounting Systems**, where a clear and auditable trail of changes is critical. - **Analytics** in rapidly changing environments, where flexibility is required to adapt to unknown future needs. - **Drawbacks of Event Sourcing**: - Event sourcing may be overkill for early-stage products due to added complexity. - Potential performance concerns with large event logs, necessitating the use of snapshots to manage state efficiently. - **Integration with Other Patterns**: The speaker touches on related architectural patterns such as DCI (Data, Context, Interaction) and CQRS (Command Query Responsibility Segregation) which enhance system scalability and organization. ### Conclusion and Takeaways: Gaddis concludes that while event sourcing introduces complexity, it provides significant advantages in terms of flexibility, historical accountability, and adaptability in systems facing evolving business requirements. The necessity for robust domain models is emphasized, as it ultimately improves application design and management in complex environments. Developers are encouraged to evaluate if the benefits of event sourcing apply to their context, especially when navigating intricate business domains.
Suggest modifications
Cancel