Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
We build different systems and usually think about the current state of our application. Usually, it’s data from our DBs. But what will happen if we start thing about the list of events which can help us calculate a state of the application for any time?
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
The video titled "Events. Events. Events!" presented by Anton Davydov at RubyConf TH 2019 discusses the concept of event sourcing and its implications for software architecture. The presentation highlights the shift from focusing on current state data in applications to the significance of capturing events to understand the application’s history and state at any given time. Key Points Discussed: - **Introduction of Event Sourcing**: Event sourcing revolves around the idea of logging events that happen in an application rather than merely tracking the current state. This allows for historical context and the ability to reconstruct states from events. - **Types of Events**: Examples provided include commits in version control systems and user actions in e-commerce applications, both of which demonstrate the importance of tracking changes over time. - **Storing Events**: Various storage options for events are discussed, including Redis, Kafka, and SQL databases. The nature of events must be immutable, meaning once an event occurs, it cannot be changed, but new events can be created to reflect updates. - **Data Evolution**: Event schemas need to evolve over time while maintaining historical integrity, allowing for backward-compatible changes. - **Projections**: The concept of projections is introduced, whereby the current state can be derived from stored events through a predictable processing function. It addresses concerns over performance regarding the accumulation of events over time. - **Real-world Applications**: Examples of event sourcing applications include financial transactions, version control systems, and audit trails. These help illustrate how detailed event logs can enhance debugging and state reconstruction. - **Challenges**: The complexities of implementing event sourcing include debugging difficulties, version compatibility, and regulatory compliance related to data privacy. - **Advanced Techniques**: Methods for real-time data presentation, like synchronizing databases and using WebSockets for immediate updates, are discussed. - **Implementation in Ruby**: Libraries such as Rails Event Store and Sequent are recommended for implementing event sourcing in Ruby applications. In conclusion, Anton emphasizes that while event sourcing can be complex, it brings significant advantages in managing data and understanding application functionality over time. Practicing these techniques, along with fostering a deeper grasp of business events, can make event sourcing a vital architectural strategy in software development.
Suggest modifications
Cancel