ArchitectureA supervised JVM-class runtime — OLTP on seven engines, OLAP on three. AI-native, MCP-native, observable as plain SQL.Read the architecture
Está viendo la edición Perú. Está viendo la edición Colombia. You're viewing the Pakistan edition. Cambiar a la edición global →Cambiar a la edición global →Switch to the global edition →
Platform · Developer experience

Build on the platform without setting one up.

Database Workbench is a browser-based IDE — no local install, no toolchain to manage. The platform's standard library has more than forty namespaces covering database access, HTTP, cryptography, cloud, AI, document generation, image processing and more. Playbook runs and debugs server-side scripts. TypeScript declarations give every IDE full autocompletion. Build on the platform you are about to ship on, from inside the platform itself.

A diagram of the authoring loop, read left to right. Four language chips — JavaScript, Python, Groovy and a business 4GL — converge on a single line into a browser window labelled Database Workbench, holding numbered code lines and a Save button, with the note no local install. Save writes to a database cylinder labelled Metadata repository, a record rather than a file. From there the change reaches three stacked server nodes bracketed as cache cleared, and a red arrow carries it into a bordered card reading: live on the next request, no build, no restart, no maintenance window, with a footnote that in-flight requests finish on the version they started with. A dashed line loops from the card back to the language chips, labelled: the next change begins the same way, there is no deploy step between them.

Four languages, all running on the server

Business logic runs on the platform's servers, never on the user's machine. Write it in JavaScript, Python, Groovy or a business 4GL — the platform provides the runtime for all four, so there is nothing to install or license. Java extensions can be added to the cluster without downtime. One security model and one audit trail cover all of it.

Standard library — 40+ namespaces

Java libraries surfaced as namespaces in the scripting languages, so a script calls them natively. Databases, documents, printers and point-of-sale devices, MQTT, cloud services, signing and e-invoicing, OCR, charts and AI — built once, available to every script.

Database Workbench — IDE in the browser

Multi-tab SQL editor with Monaco syntax highlighting. Server-side script execution from the browser. AI code completion. Object tree, ER diagram generation, import / export with progress streaming.

Code lives in the dictionary, not on a laptop

Server scripts, database routines and the objects they act on are records in the metadata repository. They are versioned, diffed, checked out and committed where the runtime will execute them — not files on a developer's machine waiting for a deployment step.

Your business logic runs server-side — in whichever of four languages suits the job

Business logic never runs on the device someone is holding. It runs on the servers the platform is deployed to — your own infrastructure, or hosted for you — next to the data, where the company's security rules and audit trail apply. The platform provides the runtime for all four languages, so there is nothing for the customer to install, license or keep patched. A team picks the language that fits the task; all four read the same data, on the same connection, with the same permissions.

JavaScript — the language teams already have

The most widely written language in the world, used here for application logic, integrations and batch work. Most organisations already employ people who write it, and the ones they hire next will too.

Python — for data and machine learning

The language data and machine-learning work is written in. Analysts and data engineers use what they know, against production data, without exporting it anywhere or standing up a second system to run it on.

Groovy — Java performance, less ceremony

Compiles and runs on the Java virtual machine, so it is as fast as Java and can call anything Java can. Numbers are exact by default, which matters when the code handles money.

A business 4GL — built for money and SQL

A language made for business calculation. Amounts are exact rather than approximate, database queries are part of the language instead of an add-on, and the code reads the way the rule reads. PL/SQL is the nearest relative most people will know.

Java extensions, added without downtime

When a requirement genuinely needs Java, Java is added — and it goes live across the whole server cluster without rebuilding the product, restarting anything or booking a maintenance window.

Developed, deployed and reached the same way — over the network

The application is written, deployed and executed on server infrastructure, whether that is the customer’s own data centre or a hosted environment. A laptop, a tablet or a phone reaches it through a browser and receives rendered results over HTTPS — there is no client to install and no device that holds logic, credentials or data. Everything of consequence stays inside the server perimeter, under one security model and one audit trail, whichever language it was written in.

A diagram in three bands. At the top, the person using the application, who sees screens and results but never the code, credentials or data. In the middle, the customer's servers, where the platform provides the runtime for JavaScript, Python, Groovy and a business 4GL, with Java extensions added live across the cluster. At the bottom, the database, reached on one connection with one set of permissions and one record of who did what.
Where the logic actually runs. The browser receives results; everything else stays on the customer’s servers, under one security model and one audit trail.
The SDK

Standard library — 40+ namespaces

An SDK for enterprise business applications. Forty-two namespaces holding several hundred ready classes, each one a Java library surfaced directly into the languages above, so a script calls it as though it were native — nothing to install, pin or reconcile. Grouped below by the job it does, as it appears in the platform’s own developer documentation.

Databases and data6

The database tier as a call rather than a project.

  • Database accessQueries, inserts and updates, transactions, stored procedures and federated queries across databases.
  • Result setsCursors, pivots, readers, writers and report structures.
  • SQL typesDecimals, dates, timestamps, binary objects, structures and query-by-example.
  • Qdrant vector storeEmbeddings stored and searched by similarity.
  • RedisCache, search indexes and aggregations over them.
  • Schema metadataTables, columns, keys and constraints, read from the engine.

Documents and output9

What the business sends out, and what it receives back.

  • PDF documentsPage masters, templates and full typographic control.
  • Excel, Word, PowerPointWritten directly, not through a conversion step.
  • PDF toolingRead, fill forms, sign, and extract tables.
  • Electronic invoicingFactur-X and PDF/A-3 for regulated invoice exchange.
  • ChartsRendered on the server for documents and mail.
  • DiagramsFlow, entity-relationship and sequence diagrams generated from data.
  • Barcodes and QRGenerated for labels and documents, and read back from images.
  • Optical character recognitionText and tables lifted out of scanned documents.
  • ImagesResizing, thumbnails, cropping and composition.

Printers and devices6

The equipment an operation runs on, which is rarely all web services.

  • Point-of-sale printersReceipt printers driven directly, with their own barcode, QR and image commands.
  • Label printersLabel stock for warehouse and logistics work.
  • Print serversEnumerate queues and read each printer’s state, media, resolution and colour capability.
  • Line-printer daemonsFor the hardware that still speaks it.
  • MQTTPublish and subscribe to equipment, with wildcard topics.
  • Raw socketsClient and server, for anything with no protocol library.

Integration and transport9

Getting data in and out of systems you do not own.

  • HTTP and RESTClient and server, with client certificates and proxies.
  • SFTPFile exchange with banks, carriers and administrations.
  • FTPWhere a counterparty has not moved on.
  • SSHRemote commands run from a script.
  • SOAPWith WS-Security, for services that still require it.
  • MailSent and read, including mailbox traversal.
  • Microsoft 365Outlook mailboxes, SharePoint document libraries and OneDrive files.
  • WhatsAppTemplated and interactive messages sent to customers.
  • AnsibleInfrastructure playbooks driven from a script.

Cloud services12

Called as functions, with the platform’s credentials and audit trail.

  • Amazon S3Objects uploaded and retrieved with metadata, tagging, presigned URLs and progress reporting.
  • AWS LambdaFunctions invoked synchronously or asynchronously from a script.
  • Amazon SESTransactional mail sent through the customer’s own sending domain.
  • Amazon SNS and SQSTopic notifications and durable queues for work handed off between systems.
  • Amazon DynamoDBKey-value and document storage alongside the relational tier.
  • Amazon AthenaQuery over data already sitting in object storage.
  • Amazon CloudFrontSigned URLs and cache invalidation for delivered content.
  • Amazon CloudWatchMetrics and logs pushed from application code.
  • AWS Secrets ManagerSecrets retrieved at run time instead of held in configuration.
  • Amazon EC2 and IAMInstances, roles and access policies administered from a script.
  • Google CloudThe equivalent services on the same library surface.
  • IBM CloudThe equivalent services on the same library surface.

Security and compliance7

The parts an auditor asks about.

  • EncryptionSymmetric and public-key ciphers, hashes and message authentication.
  • Digital signaturesXAdES, PAdES, CAdES, PKCS#7, S/MIME and XML-DSig, for documents and messages.
  • Key storesKey material managed centrally rather than in files.
  • TokensIssued, signed and verified.
  • Content sanitisingUntrusted markup cleaned before it is stored or shown.
  • Malware scanningFiles checked before they are accepted.
  • XBRLFinancial reporting in the format regulators file it in.

AI6

Part of the library, not an add-on beside it.

  • AgentsBuilt with a model, instructions, memory and the tools they are permitted to call.
  • Language modelsOpenAI, Anthropic, Cohere, Google Vertex, IBM watsonx, and Ollama for models kept in-house.
  • EmbeddingsVectors, document splitters and re-ranking.
  • Retrieval-augmented generationAnswers grounded in the customer’s own documents.
  • ToolsWhat an agent may invoke, declared and bounded.
  • SpeechTranscription and synthesis.

Language and utility9

The small things that otherwise become dependencies.

  • Exact arithmeticDecimal and big-integer maths for money and quantities.
  • Text and formatsMarkdown, number and date formats, number-to-words, normalisation.
  • UtilitiesEncoding, regular expressions, schedules, properties and collections.
  • FilesReading, writing, logging and archives.
  • JSON and YAMLParsed and produced.
  • Version controlRepositories, commits and authorship from a script.
  • TemplatingText and mail bodies from templates.
  • Unit testsServer-side code tested where it runs.
  • Parallel executionAsynchronous and concurrent work.

Dynamic REST endpoints — author in JavaScript, live in milliseconds

Write a server-side handler. Save. The endpoint is live cluster-wide. No JVM restart, no redeploy, no maintenance window — because the endpoint is a metadata record, not a compiled file. The deploy cycle that every conventional framework — Flask, Django, Express, Spring, JAX-RS — forces on a new endpoint is engineered out of the platform.

Authoring

Open Database Workbench in the browser. Write the handler in JavaScript or Python. Configure the path pattern, the HTTP method and the role binding. Save. The whole authoring loop is inside the same web application the API runs in — no toolchain, no local Maven, no npm. The endpoint is a record in the platform's metadata repository, not a file in a build artefact.

Hot-reload cluster-wide in milliseconds

On save, the runtime broadcasts a cache-eviction event through Redis pub/sub. Every node in the cluster clears its local metadata cache. The next request matching the route fetches the new handler from the metadata repository and compiles it. Existing in-flight requests continue under the old version; new requests pick up the new one. No maintenance window. No node restart. No version drift across the cluster.

Governance inherited, not re-implemented

The endpoint runs inside the same supervised runtime that runs every other request on the platform. The same eight authentication mechanisms apply — OAuth, OpenID Connect, SAML, JWT, mTLS, Basic, Digest, Form + 2FA — without the developer wiring any of them. Row- and column-level security is injected into every query the handler runs. Multi-tenant boundaries are enforced at the JDBC layer. Every invocation is captured in the platform's audit trail — the same one packaged Apps generate, queryable as standard SQL.

Standard library injected, full-fat

Every handler gets the platform's 40+ namespace standard library on the first line. Database access for native SQL across all ten engines. Outbound HTTP requests. Governed model calls into the AI providers configured for the tenant. SMTP mail. Signing and encryption. PDF rendering. Image thumbnailing and OCR. Cloud connectors for S3, Drive, SharePoint, Slack, Teams. CORS, multipart upload, server-sent events and streaming response bodies all available through the platform's HTTP layer — not glued together from a dozen npm modules.

Hot deployment — no build, no restart

Save writes to the metadata repository

The Application Editor persists the form definition to the metadata repository. The form is data in a database, not a file in a build artefact. Version control, branching, promotion between environments, audit — all the things that apply to data apply here too.

The metadata cache is invalidated cluster-wide

On save, the platform clears the metadata cache and propagates the invalidation across the cluster via Redis pub/sub. The next request on any node fetches the new metadata from the database. The cache invalidation completes in milliseconds — the new form is live cluster-wide in the time it takes to round-trip a message.

Existing sessions continue; new sessions get the new version

Users currently inside the form continue with the version they loaded. New users opening the form, and existing users who refresh, render the new version on their next request. There is no forced reload, no maintenance window, no service interruption — the new version is picked up as users move through the application.

The same model applies to server-side scripts

Server-side JavaScript and Python scripts authored against the platform's standard library follow the same pattern. Edit the script in Database Workbench, save, the next invocation picks it up. Java-tier changes (the platform itself) still require a rebuild and a JVM restart — but applications built on the platform do not.

The customisation cascade — system, company, department, user

System — the platform's defaults

Material Design 3 foundation, the established colour roles, compact density. The platform is opinionated about data-density for enterprise screens. Sane, accessible, visually neutral — designed to recede when the company's brand is applied.

Company — the brand

The company applies its branding once — primary and accent colours, logo, default locale, default density, allowed feature surface. Stored in the configuration database. Every user under the company inherits the baseline. Brand-critical decisions cannot be overridden by individuals.

Department — the role

Departmental overrides for role-based visibility on UI elements, menu customisations, default landing pages, dashboard templates. A finance team's default screen differs from a warehouse team's; both live under the company's branding.

User — the preference

Per-user appearance (light or dark), density (compact, normal, comfortable), menu style, button style, input style, theme variant. Applied on login. The user adjusts their own working comfort; everything load-bearing for the company stays under the company's control.

The unified development model

An enterprise platform's quiet differentiator: every application built on it looks and behaves the same way, because the architecture decides where things live — not the individual developer.

No full-stack developer required

Database engineers handle the database tier. Business analysts author the metadata repository. Server-side JavaScript or Python developers handle batch and middle-tier logic. UI is generated. The full-stack-developer dependency that bottlenecks most modernisations is engineered out of the critical path.

Code in the right place, by construction

Database business logic lives in the database. Application metadata lives in the metadata repository. Middle-tier scripts live in the platform's runtime. UI lives nowhere — it is generated from metadata. The platform makes the right place obvious, and the wrong place difficult.

UI under company design rules, not developer preference

The application surface is generated from a shared design language, governed by company-level UI rules. Developers do not customise screen-by-screen; the company customises once and the change applies everywhere. The result is an application portfolio that looks like one product, not seventeen.

The modernisation talent answer

When the developer who understood the old system retires, no one replaces them. JavaScript and Python developers, on the other hand, are abundant — and the platform's standard library puts them productively to work on day one. The migration is not just an application migration; it is a talent migration onto a sustainable foundation.

AI as a development partner — not a code-completion gimmick

Because the entire application is metadata — every form, screen, role, query and batch is a database record — AI development agents author the same graph developers do. Natural-language instructions compile to XDBL ; agents scaffold forms, write stored procedures, propose schema migrations, refactor workflows. No file tree to parse, no inconsistencies to fight, no dialect-by-dialect SQL to memorise. The developer and the agent share one abstraction ; the platform's compiler and security model apply equally to both. This is the structural multiplier AI gets on a metadata-native runtime that it cannot get on a file-based codebase.

Database Workbench — what the browser IDE actually provides

A full development and DBA environment, reached by URL. No JDK install, no Maven, no Docker, no local toolchain — and no credentials on anyone’s laptop. What a person finds in it is issued to them: the environments they are entitled to, and inside those, the objects they are entitled to. Works across every engine the platform supports — Oracle, PostgreSQL, SQL Server, DB2, MySQL, Informix and more.

Development, test, QA and production kept apart

Each environment is a separate registered connection, labelled as such and listed on its own. Moving between them is a click rather than a different tool, a different credential file or a different machine — and because they are labelled, which environment a statement is about is never in doubt.

Resources are granted, not discovered

A connection appears because it was assigned to the person or to a role they hold. There is no host to type, no port to know and no password to circulate. Access is provisioned centrally and withdrawn the same way; someone who leaves a team stops seeing the estate that team owns.

The grant reaches down to the object

Entitlement does not stop at the connection. What can be read, what can be written and what can be executed follow the same grant — so a developer with read access to production and write access to their own development schema sees exactly that, in one tree, with no way to exceed it.

Central provisioning, central record

Connections, credentials and the entitlements over them are administered in one place and audited there. The organisation can answer who has access to which environment, and what was run against it, without collecting answers from individual workstations.

Multi-tab SQL editor — multi-database, multi-connection

Monaco-based editor with syntax highlighting for SQL, JavaScript, XML and XSLT. Per-user query history, persistent across sessions and devices. Connect to multiple databases in the same session — PostgreSQL and Oracle side by side, SQL Server and DB2, or any combination of the platform's supported engines. Result-set inspection with row selection, sorting and export.

DBA console — schemas, migrations, query analysis

Browse the database object catalogue for any connected engine: tables, views, stored procedures, triggers, indexes, constraints. Generate ER diagrams from a live schema. Inspect query execution plans (EXPLAIN / SET EXPLAIN). Write and run schema migrations against the target engine; the platform's schema compiler validates XDBL against the engine's type system before execution. Import / export with server-side streaming progress.

Server-side JavaScript execution

GraalVM JavaScript execution from the browser, against the databases that person is entitled to, under their own permissions rather than a shared service account. The same execution model production scripts run in, and the same audit trail records it.

AI code completion

LLM-backed code completion through the configured AI provider. The completion runs inside the customer's permission perimeter; suggestions are not transmitted outside the configured provider.

Redis and Qdrant explorers

Inspect Redis keys, TTLs, pub/sub channels. Browse Qdrant collections, points and similarity searches. The supporting infrastructure is queryable from the same IDE the application database is.

SSH manager

Manage SSH connections, key material and tunnel configurations for the database servers in the fleet. The DBA and the developer operate from the same tool.

What it feels like to build on the platform

The first thing a developer notices on Airtool is the absence of toolchain. There is no JDK to install, no Maven repository to configure, no Docker image to build, no local database to seed. The browser is the IDE. The runtime is the production runtime. The library is the standard library. Code runs where production code runs, against the data production code runs against, under the same security model.

The second thing the developer notices is that the platform generates most of what a developer would otherwise hand-write. Tables, screens, REST endpoints, role checks, audit trails — all metadata. The developer's job moves up a layer: from writing the application surface to authoring the model the surface is generated from. The same developer ships more application, with less code, against the same engineering rigour the platform itself maintains.

Try the platform from the browser.

A 30-minute architecture conversation, then a guided session in Database Workbench against a sample workload.