Speaker: Stu Hood, Software Engineer, Reboot
With the rise of cloud-native development, organizations have been faced with a difficult decision: attempt to scale their applications as monoliths (and cope with centralized, finicky, rollback-prone deploys) or break their applications into microservices (and suffer from data/ownership siloes that make it difficult to transactionally manage state). They have been forced to make uncomfortable tradeoffs. We believe this is a false choice, we're just missing the right abstractions. We introduce Resemble, a full-stack, “transactional microservices” framework that allows you to write code with the simplicity of a monolith (straightforward function calls composed via transactions), but with the scalability of microservices (encapsulation of data and ownership, support for polyglot components, independent deploys, etc). In this talk we'll explain our programming model and how RocksDB enabled our implementation. Resemble acts as a middleware that coordinates reads, writes, and transactions across multiple independent instances of RocksDB (we take advantage of RocksDB's support for transactions to simplify our implementation). Resemble also provides a layer over RocksDB that enables reactive primitives, including first class support for front-end applications written using React to call functions in the backend that are re-executed automatically as data changes ("React for the backend").