One backend for your web, mobile, and AI apps
Create robust backends in minutes. Focus on your domain model; Exograph handles SQL, custom logic execution, and vector embeddings.
Data Models in Seconds
Describe your domain model, and automatically get a GraphQL API for it. Leave execution to Exograph; don't write SQL ever again.
@postgres
module EcommerceDatabase {
@access(true)
type Product {
@pk id: Int = autoIncrement()
name: String
description: String
price: Float
published: Boolean
department: Department
}
@access(true)
type Department {
@pk id: Int = autoIncrement()
name: String
products: Set<Product>?
}
}
Fine-Grained Access Controls
Go beyond role-based authorization. Specify complex permissions with just a few lines of code.
Integrate with any authentication system including OpenID Connect.
context AuthContext {
@jwt role: String
}
@postgres
module EcommerceDatabase {
@access(
query=self.published || AuthContext.role=="admin",
mutation=AuthContext.role=="admin")
type Product {
// ...
published: Boolean
}
@access(
query=true,
mutation=AuthContext.role=="admin")
type Department {
// ...
published: Boolean
}
}
Connect to Custom Logic
Integrate with external APIs or define custom algorithms with just a few lines of JavaScript or TypeScript.
@deno("announce.ts")
module ProductAnnouncement {
@access(AuthContext.role=="admin")
mutation announce(productId: Int, @inject exo: Exograph): String
}
const productQuery =
`query getProduct($id: Int) {
product(id: $id) {
name,
price
}
}`;
export function announce(productId: number, exo: Exograph): string {
const product = exo.executeQuery(productQuery, {id: productId});
const potentialBuyers = exo.executeQuery(... analytics GraphQL query);
sendEmail(
potentialBuyers,
"New Product", `A new product ${product.name} is available`
);
return "Announcement sent";
}
Awesome Developer Experience
Iterarate fast with support for schema creation, migration, deployment, and more throughout the application lifecycle.
Exograph models fit right into your existing Git workflow.
Performant
Exograph's architecture provides high performance, fast startup time, and low memory usage. Suitable for serverless and traditional cloud deployments.
- Cold startup time on AWS Lambda < 200ms
- Memory footprint < 64MB
- Fast query execution
Deploy Anywhere
Deploy to the cloud of your choice. Exograph comes with direct support for AWS Lambda, Fly.io, and any platform with Docker support.