index.md 2.72 KB

1. Mental Model

Before any worked example, the conceptual map.

The framework is module-driven: every screen a PM creates and every screen a customer sees is a row in gdsmodule joined to layout rows in gdsconfigformmaster/slave, permission rows in gdsjurisdiction, and stored procedures invoked through BusinessBaseController in the runtime.

At a glance

flowchart TB
    classDef oos stroke-dasharray:5 5,color:#999

    BACK["BACK<br/>builder UI"]
    FROUNT["FROUNT<br/>customer UI"]
    EXT([External integrators])
    HOOKS([Third-party webhooks])

    subgraph framework [Framework runtime - in scope]
        XENTRY[xlyEntry]
        XAPI[xlyApi]
        XIF[xlyInterface]
        XFLOW[xlyFlow]
        XPLC[xlyPlc]
        XMSG[/"xlyMsg<br/>library"/]
    end

    DB[("MySQL<br/>xlyweberp_*")]
    REDIS[(Redis)]
    AMQ([ActiveMQ])
    XEJMSC[xlyErpJmsConsumer]
    PLAT[("xlyPlat* modules<br/>+ MongoDB")]:::oos

    BACK --> XENTRY
    FROUNT --> XENTRY
    FROUNT --> XAPI
    EXT --> XAPI
    HOOKS --> XIF

    XENTRY --> DB
    XAPI --> DB
    XIF --> DB
    XFLOW --> DB
    XPLC --> DB

    XENTRY <--> REDIS
    XENTRY -- "metadata change" --> AMQ
    AMQ --> XEJMSC
    XEJMSC --> REDIS

    XENTRY -. uses .-> XMSG
    XIF -. uses .-> XMSG

    PLAT -.-> DB

The dashed cluster (xlyPlat* + MongoDB) is the B2B printing-platform tier — present in the build, but out of scope for this wiki.

For the library inventory behind each box, see the Tech stack page.

Concept pages

These pages are intentionally short — each one explains one concept, with links to the vertical slices that exercise it. Concepts pages should stay short; if one grows past a screenful, that's a sign the content wants to be a slice instead.