Most of Airbnb's development happens in several large monolithic repositories. With thousands of changes merged every day there is a high probability that changes that pass verification independently fail to integrate with other changes on the mainline.
Evergreen is a system which guarantees serializability of changes. It enforces that any mainline commit passes all automated checks like compilation, static analysis or tests as if they were merged sequentially without overlapping in time. This is made possible by utilizing optimistic concurrency controls and build system topology in order to parallelize the verification of merging changes.
Evergreen uses an actor model built on top of Kafka Streams.
83. It just works
Single event processing in Kafka Streams
No replay snapshotting
Kafka
Streams
Experience
84. It just works
Single event processing in Kafka Streams
No replay snapshotting
Rebalancing
Kafka
Streams
Experience
85. It just works
Single event processing in Kafka Streams
No replay snapshotting
Rebalancing
Flaky Tests
Kafka
Streams
Experience
86. It just works
Single event processing in Kafka Streams
No replay snapshotting
Rebalancing
Flaky Tests
Non-programmatic operational tooling
Kafka
Streams
Experience
87. It just works
Single event processing in Kafka Streams
No replay snapshotting
Rebalancing
Flaky Tests
Non-programmatic operational tooling
Size Limits
Kafka
Streams
Experience
88. It just works
Single event processing in Kafka Streams
No replay snapshotting
Rebalancing
Flaky Tests
Non-programmatic operational tooling
Size Limits
DSL & Interactive Queries
Kafka
Streams
Experience
89. Questions?
janusz.kudelka@airbnb.com
All trademarks are the properties of their respective owners. Any use of these are for identification purposes only and do not imply sponsorship or endorsement.
joel.snyder@airbnb.com