Rather than Styx to Wasm, try to go Radon to Styx
Why?
- Radon is a middleware with no end-to-end support for transactions
- Styx is currently is a platform with a single language and single tech stack
What do we get?
- Technology agnostic transactions in distributed systems
How is this better than Styx?
- Generalization, portability (not just language support)
How is this better than Radon?
- Support for exactly-once semantics
Maybe different focus regarding reconfiguration space, rather than focusing on non-functional requirements, focus on implementations by context, by features. Develop a set of traits that plug in the main system to get the tools working (Optional: automate the decision of tools)
What do we actually address: Radon is low-level, it helps, but the transactionality is still a user concern (all of the reasoning we did on the levels of abstractions). Styx is high-level, but it is limited in applicability due to its static implementation, it is not adaptable to truly different technologies.
What we could develop is a tool to write complete, transactional applications that can be deployed anywhere™ and written in any language™
Challenges? How are state changes in the Store handled? Is it part of the “committed” state? We can delegate the concern and say that the memory, globals etc are a scratch space and are not persisted, anything that must actually mutate the state must go through the FFI so we can preempt and apply eventual transactionality stuff. The problem with this is that any state interaction then needs to be tracked and be part of the transactional protocol. (How does styx deal with this? Idk) Is this a performance or a protocol problem? Can we use an entity-local write-ahead log that we then commit atomically when everything is cool? Implicitly we kind of get MVCC-kind-of and we don’t add communication overhead. The disadvantage is that the transaction boundary is only in-between external calls, but maybe we can add a timer or an explicit “sync” instruction that forces the commit
Options for my work at TU Delft
- Styx on Radon (model for developing transactional applications that are technologically agnostic) Styx Everywhere
- Prototype for Vision Paper about the big work on composing system to develop distributed systems with configurable guarantees Cloud Lego Summary and Cloud Lego