Public preview · spring 2027

Actors that remember. Clusters that heal.

Blue is a functional language for the JVM where persistence, actors and self-healing clusters are part of the language, not libraries bolted on.

A first look

State that survives, without the plumbing

In Blue, an actor's state is durable by default. There is no database client to wire up and no snapshot code to write.

counter.bluepreview syntax
// State persists across restarts and node failures
actor Counter = {
  state: Int = 0

  receive msg = match msg with
    | Increment -> state = state + 1
    | GetValue  -> reply state
}

let counter = spawn Counter
counter ! Increment
  1. Spawn it onceThe counter starts at zero the first time it runs.
  2. Stop the programKill the process, or lose the node it was running on.
  3. Start it againThe counter carries on from where it was. Blue saved its state for you.
What's in the language

Four ideas, built in from the start

Orthogonal persistence

Data outlives the program, with no ORM, schema or save call. The idea goes back to PS-Algol; Blue brings it to the JVM.

Actors in the language

Actors, messages and replies have their own syntax, so concurrent code reads like the rest of your program.

Self-healing clusters

Nodes find each other and recover on their own. When one fails, its actors carry on elsewhere with their state intact.

Clean ML-family syntax

Typed, concise and readable, with type inference and pattern matching. A deliberately lean core, not a kitchen sink.

PS-AlgolStandard MLErlangOberonSmalltalkRuns on the JVM
Status

Where Blue is today

Blue is in active development. Everything in 0.x may change.

NowCompiler and runtime

Building the production compiler, docs and tutorials.

Early 2027Private beta

A small group works through the tutorials and reports what breaks.

Spring 2027Public preview

Open source on GitHub, with installers, docs and a getting-started guide.