TheDeveloper Platform

Modern backends sprawl into a mix of databases, queues, workers, and glue code. That fragmentation slows development and complicates operations.

Rama replaces that whole stack with a unified, fault-tolerant programming model that scales from one node to thousands.

Customer Testimonials

LESS CODE FOR LARGE-SCALE BACKENDS

Building and managing large-scale backends involves juggling numerous tools for storage, computation, deployment, and coordination. Worse, custom tools frequently need to be built from scratch for specialized storage or computation needs.

By being a unified platform, Rama drastically reduces the amount of infrastructure needed. Additionally, it eliminates the need to build custom infrastructure since its simple building blocks can be composed in innumerable ways to satisfy any storage or computation use case.

For an example of this cost reduction, see our complete reimplementation of Mastodon to be Twitter-scale in 100x less code than Twitter wrote to build the equivalent.

REDUCED INFRASTRUCTURE COMPLEXITY

Since Rama can build an entire backend with diverse needs on its own, the amount of infrastructure needed is greatly decreased.

Rama makes it easy too. This greatly simplifies productionizing an application, as deploying, updating, and scaling applications are just one-line CLI commands.

See our post Rama in five minutes for an example of how a stack that normally requires Postgres, Kafka, Memcached, background workers, and glue code can be expressed as a single Rama application.

LESS GLUE CODE

Glue code takes many forms, such as ORMs to translate objects to database schemas, serialization between systems, cache invalidation logic, and retry and backoff handling at every system boundary.

Rama eliminates most of this. Logs, compute, and storage are integrated so data flows through without translation. Transactions span the entire module without coordination code. Datastores are composable data structures that match your application, so you store domain data directly.

Free consultation

Schedule a free 45-minute consultation to discuss your use cases, ask questions, or even pair program on using Rama to solve your problem.

UNIFIES ALL STORAGE, BUSINESS LOGIC, AND BACKGROUND WORK FOR A BACKEND

Rama's programming model eliminates the need to use multiple databases, operate background queues, have a separate stream processing system, or deploy custom workers. Rama can build applications as needed.

A single Rama cluster can host any number of applications on it. Deploying, updating, and scaling Rama applications are one-line CLI commands.

See short, self-contained, thoroughly commented examples of using Rama in the rama-demo-gallery repository.

INFINITE DATA MODELS

Unlike a database, which implements a fixed data model, datastores you materialize with Rama can be any shape. These datastores, called PStates, are defined in terms of data structures (e.g. maps, sets, lists). A data model is just a particular combination of data structures.

PStates are durable and incrementally replicated, making them suitable for any use case for which databases are used. Rama makes it easy to materialize any number of PStates of any number of shapes, all updated incrementally.

ACID SEMANTICS AS STRONG AS POSTGRES AND SIMPLER TO USE

Relational databases require you to configure isolation levels to balance performance with the exact semantics you get on a transaction. Rama provides ACID semantics as strong as any database, but you never need to specify isolation levels.

When processing data using microbatch topologies, all writes to all views are always a cross-partition transaction.

PROGRAMMED WITH A LIBRARY, NOT A DSL

Rama applications are programmed with any JVM language, with first-class Java and Clojure APIs available. Since Rama is programmed as a library instead of a DSL, there's no limitations on what you can code.

Clients to Rama applications written in a JVM language can use Rama's native APIs, and clients from other languages can use Rama's REST API to do reads/writes with HTTP.

EXTREMELY HIGH PERFORMANCE AND LINEARLY SCALABLE

In a set of benchmarks against MongoDB and Cassandra, Rama matched or exceeded their performance in every case. The performance of the Rama-based implementation was slightly better than Twitter's published performance numbers while being 100x less code.

ONLY SYSTEM TO SUPPORT ARBITRARY FINE-GRAINED REACTIVITY

Rama provides a new capability called "fine-grained reactivity". Traditional databases only support coarse-grained reactivity. Rama's reactive queries can be done at any level of any view, with minimal diffs.

EASY TO INTEGRATE WITH ANY OTHER INFRASTRUCTURE

Rama can easily be integrated with any other system, making it easy to add Rama incrementally to an existing backend.

ELIMINATES 90% OF DEVOPS WORK

Rama simplifies the deployment and management of applications in production. Launching, updating, and scaling applications are one-line commands at the terminal.

COMPREHENSIVE, BUILT-IN MONITORING

Rama provides detailed telemetry on all Rama applications viewable with its web-based Cluster UI. All aspects of Rama applications are measured, aggregated, and displayed in time-series charts.

FREE TO USE UP TO TWO NODES

Rama is free to use up to two nodes, sufficient for running small or medium-scale applications in production. Download at this page.

BUILD ANYTHING

Examples

  • SOCIAL NETWORK
  • WEB ANALYTICS
  • BANKING APPLICATION
  • RECOMMENDATION ENGINE
  • AUCTION APPLICATION
  • GRAPH SEARCH
  • TEXT-BASED SEARCH ENGINE
  • E-COMMERCE
  • LOG ANALYTICS

Or anything you can imagine.

CONSULT WITH AN EXPERT

Book a free 45-minute consultation with a Red Planet Labs engineer to discuss your use cases, ask questions, or even pair program on using Rama to solve your problem.

TRY RAMA RIGHT NOW ON YOUR LOCAL MACHINE

Rama is available via a Maven dependency for experimentation.

USE RAMA IN PRODUCTION FOR FREE

Rama is free to use up to two nodes. See the pricing page for full details.

PURCHASE A LICENSE

A license lets you run larger clusters and use enterprise features. See the pricing page for details.