Architecture

Software that keeps up with your business

Reventless helps you build business software faster, keep it maintainable for years, make every decision traceable — and run it at low cost. Here is how.

The problem

Software that runs real business processes — money, contracts, goods, approvals — tends to grow rigid over time. Changes take longer and become risky. Nobody can prove beyond doubt who changed what, and when — a real problem for audits and compliance. Most of the engineering time goes into technical plumbing instead of the product. And the bill for development and operations keeps climbing.

The usual answer is more process, more infrastructure, more specialists. Reventless takes the opposite route: less technology in your way.

The idea: your domain definition is the spec

With Reventless, your team describes what the software must do for the business — the commands people issue, the events that happen, the views they need. That description is written in ReScript, a language whose type system is a natural fit for domain modeling, and it is checked by a compiler, not by a wiki page.

Everything else is derived from it: database schemas, GraphQL APIs, MCP server schemas, AWS infrastructure. One source of truth, no glue code, no drift between layers. Change the spec, regenerate the system.

The spec is the system

Define commands, events and views in one type-safe spec. Reventless derives everything else — database schemas, GraphQL APIs, MCP servers, cloud infrastructure. Change the spec, regenerate the system.

You write the spec
// Customer.res — the spec
@@reventless.spec

@schema
type command =
  | Register({email: string, address: string})
  | UpdateEmail({email: string})
  | Deactivate

@schema
type event =
  | Registered({email: string, address: string})
  | EmailUpdated({email: string})
  | Deactivated

@schema
type state = {
  email: string,
  address: string,
  active: bool,
}
Reventless generates the rest
# Generated GraphQL API — one of four surfaces
type Mutation {
  register(email: String!, address: String!): CommandResult!
  updateEmail(id: ID!, email: String!): CommandResult!
  deactivate(id: ID!): CommandResult!
}

type Customer {
  email: String!
  address: String!
  active: Boolean!
}

type Query {
  customer(id: ID!): Customer
  customers: [Customer!]!
}
  • Event store
  • GraphQL API
  • MCP server
  • Cloud infrastructure

Every decision, on record

Reventless doesn't just store the current state of your data — it records every single change as an immutable event. Nothing is overwritten, only appended, like a ledger. From that you get a complete, always-verifiable history of your business for free: for audits, disputes, compliance — and for debugging, because you can replay exactly what happened.

This pattern is called event sourcing. It has long been the right architecture for serious business software — and just as long been a specialist's luxury. Reventless exists to make it the default: accessible, production-ready and relentlessly opinionated, so your team doesn't need a distributed-systems expert on staff.

Built from independent slices

Systems are composed of slices — self-contained vertical features that own their commands, events and views, following an event modeling approach. Slices communicate through events, not direct dependencies: teams can build, test and deploy them independently, add new ones without touching existing ones, and change one without ripple effects across the codebase.

No operations burden

Reventless applications run serverless by construction — AWS Lambda, DynamoDB, AppSync today, with more targets planned. There are no clusters to size, no servers idling at night, no patch Tuesdays. You pay for what you use, like electricity on a meter. And infrastructure is not an afterthought you script by hand: deployments are generated with the code.

Ready for AI

Every Reventless application ships an MCP server automatically: your business processes become tools an AI assistant can safely operate. The strict type contracts also make the platform an excellent target for AI-assisted development — generated code is validated by the compiler immediately. And an event-sourced system produces exactly the complete, ordered, structured data that AI and analytics workloads want.

Proven, open, yours

  • In production since 2019. Development of the Reventless framework started in 2019, and it has run applications in production in the financial industry for more than six years. Since 2026 the same framework is open source, and its development continues in the open.
  • Open source, no lock-in. Reventless is open source and runs in your own cloud account. No forced subscription, no data in someone else's hands. The framework lives at reventless.dev.
  • Resilient at the core. The platform builds on Effect: typed error handling, automatic retries with backoff, and streaming data flows for replaying large event histories efficiently.

Is Reventless a fit?

A good fit if you are:

  • a company with custom software running complex business processes,
  • in a regulated industry (insurance, health, logistics) where traceability counts,
  • a growing tech company that wants to ship fast and still be maintainable in five years.

Less of a fit for plain marketing websites, off-the-shelf webshops, or apps with little business logic.

For the technical depth — concepts, tutorials, API reference — head to reventless.dev. To find out what Reventless would mean for your system, work with us, or start with the overview of the open-source framework.

The building blocks

Every description, however large the business, is made of three kinds of line. Written in your own words, each one becomes a part of the software.

What happens

A charging session was turned down to 7 kW

A fact, in the past tense and in your words. Nothing is ever overwritten: the full history stays, and every later question can be answered from it.

What is decided

Only a flexible session may be turned down

A rule that says, from what has happened so far, whether something may be done and what happens then. Your examples pin it down and run as tests.

What someone needs to see

Operations see every session in the grid area; a driver sees only their own

What a person needs on a screen, kept up to date by itself as things happen, and shown only to those who may see it.

Larger blocks for larger systems

The same three kinds of line, grouped as the business grows. Each block stays small enough to understand and to check on its own.

Part

One line, as software

Each line of the description becomes one part: a decision with what it records, or a view. Amperia’s “turn a session down” is one part.

Chapter

A piece of a process, kept together

Parts that belong together: everything about grid calls, from asking to answering to settling.

System

One job of the business

Several chapters with one purpose, which one team can own and which runs on its own. Amperia has two: Charging and Flexibility.

Contract

What crosses between systems

Systems talk only through a contract. Charging reports sessions starting and ending; Flexibility asks it to turn a session down. Charging never hears of a grid call.

The app

The systems together

Amperia is two systems and the contract between them, from one description. A new job of the business becomes a new system beside the others.

Because every block is small and checked on its own, a change stays where it belongs, teams can work side by side, and ready-made blocks of every size can be taken from the marketplace or offered on it.

In the framework’s own terms

What happens
an event
What is decided
a command and its decision, with the events it produces
What someone needs to see
a view, built from the events
Part
a slice: one command with its decision, or one view
Chapter
a folder of slices within a plugin
System
a plugin, a bounded context deployed on its own
Contract
the events and requests one plugin publishes for another, with a translation on each side
The app
the platform the plugins are deployed to

See them on the example: Amperia, step by step →

Find out if Reventless fits

A short conversation is enough to see whether your business process and Reventless are a match — no obligation.

Free 30-minute intro call — no obligation.