Radiant
Git and YAML registration, schemas, refs, validation, caching, provenance — plus pull-request-style review on every asset change. Employees and AI agents propose; operators approve and merge.
LatticeKit composes the primitives operations-heavy products always end up rebuilding — scheduling, identity, payments, ledger, workflow, comms, real-time, marketing, reporting, experimentation, logistics. Wire the primitives; ship the business logic on top.
Most operations-heavy products end up rebuilding the same wheels: scheduling and resources, identity and consent, payments and ledger, workflow and comms, audiences and audit history. LatticeKit ships them as reusable primitives so teams compose them instead of reinventing them.
LatticeKit turns business behavior into explicit definitions, contracts, plans, and executions — auditable by developers and AI agents alike.
Each primitive owns a real architectural concern. Together they form a lattice of reusable capabilities instead of a monolith of accidental coupling.
Git and YAML registration, schemas, refs, validation, caching, provenance — plus pull-request-style review on every asset change. Employees and AI agents propose; operators approve and merge.
Schedules, offers, availability projections, and full booking lifecycles — now including travel-aware field-service scheduling. Pending through completed under explicit cancel and modify policies, with deterministic planning and scheduled hand-offs.
Physical resources, inventory, capacity, pools, allocation, and constraints for reservable or assignable assets.
People, accounts, and ranked groups — households, families, tiers, teams. Consent and entitlement gates that other primitives call before touching customers, plus typed custom attributes that add per-tenant fields without a migration.
The sellable catalog: products, variants, modifiers, recipes, tax classes, and a real dynamic-pricing engine — tier and channel scopes, CEL fallback, yield / surge, cart promotions, bundles, and customer-redeemable promo codes.
Live order tabs for retail and food service. Open, modify, route to kitchen, settle, and close — coupled to Hardin, Payments, and Mallow.
Processors, payment methods, intents, authorizations, settlements, and disputes — modeled to match how real payment providers actually work, now including card-present (EMV) terminals.
Ledger-style records, sales, hours, payouts, settlements, immutable event history, and auditable financial state — plus stored value (gift cards, store credit, loyalty) on the same ledger.
Messages, templates, channels, consent, communication preferences, delivery attempts, provider routing, and conversation history — across email, SMS, and Web/mobile push.
DAG-based workflow engine. Branch, switch, parallel, sleep, wait-for-event, and loop nodes; CEL triggers; three-backend executor (sync, sqs, temporal).
The operator console. Mannix-backed sign-in (passkeys + MFA), AI chat with an MCP tool registry over every primitive, visual asset editor, multi-page tenant sites.
Bulk data-import primitive. Upload a CSV, XLSX, or a whole ZIP export; AI proposes the mapping, a dry run previews it, and rows import through each primitive's normal validation.
Marketing primitive: audiences, campaigns, attribution, and conversions. Sits on top of Speaker, Daneel, and Terminus.
Reporting-fork data plane plus authored reports with scheduled runs. Forks operational writes into a query-shaped read plane with backfill, so reports never touch the hot path.
Live channels over the audit event outbox, deployed over Centrifugo. Twelve per-primitive channel derivers, out-of-transaction fan-out, and a Live Activity stream in Demerzel; subscription auth defers to Terminus.
Experimentation: multi-armed bandit experiments over prices, ui_views, and offers. Wired live into Hober pricing — cohort-stable allocation, revenue attribution at order close, hourly auto-convergence, and a Radiant handoff that merges the winning variant.
Logistics: parcel, last-mile own-fleet, and recurring B2B freight behind one mode-agnostic carrier-driver seam. Real carriers (EasyPost, Shippo, UPS, FedEx, DoorDash, Uber Direct, freight brokers), an X12 EDI freight layer, tracking webhooks, and auto-shipments from a closed Hober order.
The media store: files and images uploaded straight to S3 over a presigned URL, served from CloudFront, and referenced by opaque id so no other primitive ever proxies a byte.
Authentication for customers, operators, and machines: one global principal with password, passkeys, TOTP, social, and OIDC. RS256 tokens every primitive verifies offline; reuse one login across businesses with no cross-business visibility.
E-signature: envelopes, signers, and the signing lifecycle, with the real vendor (DocuSign, Dropbox Sign, Adobe) behind one provider-driver seam. Documents live in Media; signers in Terminus.
Shared IDs, tenancy boundaries, contracts, error models, metadata, events, CLI flows, and OpenAPI-ready DTOs.
LatticeKit is built around a simple loop: define behavior in versioned contracts, validate it before runtime, execute it through observable primitives, then improve it safely.
Use schema-first APIs and Git-backed YAML definitions to describe policies, workflows, schedules, resources, and audiences.
Resolve refs, infer types where appropriate, check relationships, and produce human-readable validation failures before execution.
Compute offers, actions, allocations, communication targets, and side effects as inspectable plans with deterministic reasoning.
Run workflows and I/O through idempotent handlers, retries, compensation, audit records, and observable runtime boundaries.
LatticeKit favors explicit contracts, strong names, stable APIs, and clear error models so developers can reason about change. The same properties make it safer for AI tools to assist without guessing.
_type: daneel.action
version: 1
name: booking-reminder-24h
trigger:
event: seldon.booking.confirmed
filter: "event.startsAt - now > 24h"
dag:
entryNodeId: send
nodes:
send:
type: speaker.send_message
config:
templateAlias: reservation.reminder.v1
recipientPersonId: "{{ event.party.members[0].terminusPersonId }}"
urgency: transactional
next: done
done:
type: end
One primitive set, very different products. Click any of these for a full end-to-end narrative naming the primitives at each step.
Multi-night stays, in-room charges that roll into the folio, spa appointments as separate Bookings, housekeeping routing on checkout.
Read →Variable-duration services, walk-in queues that promote on cancellation, retail add-ons mid-service, tip-on-card with one capture.
Read →A live tab on a table held until close, kitchen tickets coursed and routed by Daneel, split checks, tip-on-card, recipes that decrement inventory.
Read →Capacity-capped classes with waitlists and check-in, membership tiers, class packs as stored value, and recurring dues on a stored credential.
Read →Zone-gated own-fleet dispatch, pay-before-dispatch through the needs ledger, live Palver tracking, and a carrier seam that overflows to DoorDash or Uber.
Read →A consult → conditional procedure → follow-up journey run as a Daneel DAG, with deposit and approval needs and a Sign consent envelope.
Read →LatticeKit is still being built in the open with a small group. Join the waitlist to follow along and get access as primitives mature.