Рет қаралды 704
Rama is a new kind of programming platform that extends the principles of functional programming for building end-to-end backends. We've demonstrated Rama's power by building a clone of the Twitter consumer product - with performance and scalability as good as Twitter - in 100x less code than Twitter wrote to build the equivalent (10k LOC vs. 1M LOC). Rama has been applied for in domains as diverse as interactive consumer apps, high-scale backend analytics, threat analysis/detection, financial transactions, and more.
Rama can reduce the cost of development so much because it's based on simple primitives that compose, whereas backend development previously has been based on coarse-grained tools that don't compose. Rama combines what databases and stream processors do, except massively generalized and with a great deal of power unlocked by combining them. It has strong ACID semantics and is programmed entirely with either a Clojure or Java API.
Composability is a key principle of functional programming, and Rama provides that in a fine-grained way for both storage and computation. Whereas databases are based on fixed ""data models"" (e.g. relational, key/value, column-oriented), Rama's storage is based on composable and durable data structures. Every data model is just a specific combination of data structures, so Rama can be used for any data model plus literally infinite more.
Rama's computation API turns distributed programming into the composition of functional programming primitives. Distributed programming is not only about specifying ""what"" to do, but also ""where"" to do it. Rama's dataflow-based API allows ""what"" and ""where"" to be seamlessly composed.
In this session, we will explore Rama and its functional programming roots through extensive code samples and real-world examples.
More details: confengine.com...
Conference Link: functionalconf...