Business Rules Model

What you call, and how it changes

Pick a row. Your code asks for the table by name and gets the value from memory. Functions and flows are called the same way.

A rule, edited in Studio
demo.motor.coverage.veh.premium
coverage.codeoption.codepremium
Pick a row. The call and the result follow.
Your code
HigsonContext ctx = new HigsonContext();
ctx.set("coverage.code", "COLL");
ctx.set("option.code",   "SILVER");

BigDecimal premium = engine
    .get("demo.motor.coverage.veh.premium", ctx)
    .getBigDecimal();
Result
premium538.50from memory, no database round trip
  1. EditIn a private work session
  2. TestExpected results stored with the rules
  3. PublishOr reject the whole session
  4. LiveEvery runtime picks the change up within 3 s
Architecture

Two parts and a database

Studio writes rules to your database. The runtime reads them and keeps them in memory. Your application calls the runtime, or embeds it as a library.

Any language calls a shared runtime over HTTP.

Your application · JVMBusiness usersEnd usersHigson StudioWeb UI · MCPWriteReadDatabasePostgreSQL · Oracle · SQL Server · MySQLRulesDiagnosticsHigson Runtime RESTDocker · Spring Boothigson-runtimeMaven · GradleREST · JSONJava APIYour applicationAny languageBusiness logicJava · Kotlin
  • Rules live in memory

    A call never waits for the database.

  • Changes arrive in 3 seconds

    Watchers refresh only what changed.

  • Scales by adding instances

    Each runtime holds its own copy of the rules, so there is nothing to coordinate.

  • Tests need no database

    Load a snapshot ZIP as the data source.

Quick start

Running on your machine in five minutes

You need Docker and a developer licence. Studio always runs with one; a developer licence is free for three months and anyone can ask for it.

$ git clone https://github.com/higson-io/business-rules-motor-insurance
$ cd business-rules-motor-insurance
$ docker compose up -d

# first run pulls about 1 GB, then:
# Studio        localhost:38080/higson/app   (admin / admin)
# Runtime REST  localhost:8081/swagger-ui
# Sample app    localhost:48080/demo

No Docker? Download the ZIP bundle.

Integration

Call it from your code

<!-- pom.xml -->
<dependency>
  <groupId>io.higson</groupId>
  <artifactId>higson-runtime</artifactId>
  <version>4.3.3</version>
</dependency>

// once, at startup
var factory = new HigsonEngineFactory();
factory.setDataSource(dataSource);
HigsonEngine engine = factory.create();

// per request
engine.get("…veh.premium", ctx);   // decision table
engine.call("…premium.total", ctx); // function
engine.flow("…underwriting", ctx);  // flow
Model Context Protocol

An MCP server, built into Studio

Your coding agent

Claude Code · Cursor · Codex · VS Code

Higson Studio

MCP server, about 90 tools

Rules

Read · change · test · publish

  • Tables, functions, flows

    The agent reads and edits them like a Studio user.

  • Tests before publish

    Runs the same test packages a person would.

  • Change history

    Every edit is signed by the token’s user and kept in the history.

// .mcp.json
{ "mcpServers": { "higson": {
    "type": "http",
    "url":  "https://studio.example.com/higson/api/mcp",
    "headers": { "Authorization": "Bearer ${HIGSON_STUDIO_TOKEN}" }
}}}
Benchmarks

Measured, with the conditions stated

Released versions, one laptop, no tuning.

0.23ms
per rule execution
0.32 → 0.23 ms since 4.0
  • 103 decision tables
  • 43 functions
  • Single thread
29.88MB
of heap, 1.1 million rows
47% less than 4.0
  • Two tables in memory
  • 1,000,000 + 100,000 rows
  • 3 conditions, 1 output each
122s
to import a 90 MB snapshot
9.8× faster than 4.0
  • 1,292 decision tables
  • 3.56 million rows
  • 1,182 functions

Intel Core i7-13700H, 14 cores, Java 17, Windows 11.

Our numbers are one thing. Yours are another.

Send us a sample of your rules. We run it in Higson and share the results, free.

Challenge us with a free PoC
Production

What your architect will ask

Deployment

  • Java 17 or newer
  • Docker images, non-root
  • WAR on Tomcat or executable JAR
  • AWS Marketplace AMI
Deployment guide

Databases

  • PostgreSQL, Oracle
  • SQL Server, MySQL
  • H2 for demos and tests
  • External SQL as a table source
Supported databases

Security

  • CREST-certified pentests
  • SAML 2.0, Active Directory, LDAP
  • Roles and per-profile grants
  • Expiring API tokens
Security overview

Versioning

  • Every table, function and flow
  • Draft, active, archived
  • Author on every change
  • Effective date per version
Versioning

Observability

  • Diagnostic panel: JVM, GC, threads
  • Profiler with flame graph
  • Cache and JDBC monitors
  • Spring Actuator endpoints
Diagnostic panel

Testing

  • Tester built into Studio
  • Test packages, run in batch
  • Unit tests from a snapshot ZIP
  • Dev mode: unpublished rules visible
Testing guide
Resources

Everything else is one click away

Releases

Every line is supported for at least 18 months.

  • 4.3 LTS · latest4.3.3 · 8 Sep 2026
  • 4.2 LTS4.2.9 · 7 Sep 2026
  • 4.1 LTS4.1.28 · 7 Sep 2026
Full changelog

Ready to Get Started?

Run Studio, the runtime and a sample product on your machine in about five minutes.