S++Business systems language
LANGUAGE MODEL / 01

Make the business model
the source.

S++ separates business semantics from the application and physical choices that implement them. This page is a short guide to the vocabulary used in the public examples.

Read the complete English book →

Three layers, one operation

SPP: business language

Defines entities, the roles they play, agreements, atomic services, checks, calculations, and scenes. A scene lists its participants, calls services, and marks the boundary within which business updates must remain consistent.

APP and PHY: realization

APP selects deployment, service routing, storage mapping, and transaction policy. PHY defines concrete resources and representation, including numeric types. The compiler uses all three layers to generate runnable services.

Participants and scenes

Participants are the roles or agreements involved in an operation. A buyer and a merchant may both be played by people, yet they have different responsibilities in a payment. Scenes make those roles explicit. Their source can read like a business sequence: query, check, calculate, update.

Scenario serial payShopOrder(Buyer, Merchant, ShopOrder, PaymentAgreement) {
    checkBuyerCredential;
    checkPaymentEligibility;
    preparePayment;
    transaction {
        payOrderFunds bounds {
            Buyer.wallet: [0, null];
            Merchant.cash: [0, null];
        };
        updateShopOrder;
    }
}

Shortened from the Petstore demonstration. The full scene includes participant lookup and receipt creation.

What the business layer chooses

Checks and calculations

Checks are visible services that control whether a business block continues. Calculations express business math independently of Java's primitive numeric types. Explicit bounds protect quantum changes at the service boundary.

Consistency boundaries

A scene declares where consistency is required with transaction { ... }. APP and PHY determine how the participating service modes realize that requirement. When a later step fails after an earlier step commits, a scene can state the business treatment in fail { ... }.

Current boundaries

S++ is an active language and compiler project. The Petstore and selected deposit scenarios run as generated Java demonstrations, but the examples are not evidence that every distributed failure mode or production integration is complete. Recovery across mixed service modes and full distributed transaction coordination remain areas of design and implementation work.

Start with the two demonstrations to see what has been modeled and exercised today.