@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 assembing 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 {toWhom}"
}
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.
Execution boundaries, durable state, derived reads, event flow and recoverable failures in the source code — not just in an architecture diagram assembled from conventions.
Software, reliability, database and data engineering work against the same application structure rather than integrating between disconnected tools and models.
Ownership, behaviour, bounded contexts and invariants become compiler-enforced rules instead of conventions followed by framework discipline and runtime discovery.
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.