@T
Services
Stateless, networked application operations.
Distributed Application Programming Language

Multiple Components,
One Application
Ritchie is a programming language for stateful cloud-native enterprise applications. Stop assembling servers, start composing functionality.
$User {
unique String name
}
$User.name() -> String {
return self.name
}
@Greeter { }
@Greeter.sayHello(String toWhom) -> String {
$User u = $User[name: toWhom]
else create $User{} then {
return f"Hello new user {u.name()}"
}
return f"Hello registered user {u.name()}"
}Ritchie gives the compiler a semantic view of the application: which work is local, which state persists, which operations cross a boundary, which reads are published, and which failures callers can recover from.
@T
Stateless, networked application operations.
$T
Durable identity and transactional state.
%T
Read-only rows over committed state.
T~>
Continuous facts and subscriptions.
T!
Typed, recoverable domain outcomes.
Write Hello World in Go with basic state, concurrency and a network boundary, then see the resulting application expressed in Ritchie.
See the ownership, interaction, failure and runtime rules that turn Ritchie’s program graph into a reliable distributed system.