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.
Blue is a functional language for the JVM where persistence, actors and self-healing clusters are part of the language, not libraries bolted on.
Watch the bluelang-org organization to hear when the preview opens.
In Blue, an actor's state is durable by default. There is no database client to wire up and no snapshot code to write.
// 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
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, messages and replies have their own syntax, so concurrent code reads like the rest of your program.
Nodes find each other and recover on their own. When one fails, its actors carry on elsewhere with their state intact.
Typed, concise and readable, with type inference and pattern matching. A deliberately lean core, not a kitchen sink.
Blue is in active development. Everything in 0.x may change.
Building the production compiler, docs and tutorials.
A small group works through the tutorials and reports what breaks.
Open source on GitHub, with installers, docs and a getting-started guide.