Framework capabilities and boundaries
This page explains practical choices you may encounter while building an application.
Choose the right database
- SQLite: local files, simple deployment, small applications.
- PostgreSQL: relational applications requiring concurrent writes, transactions and rich SQL.
- MySQL: applications using MySQL-compatible database infrastructure.
The PostgreSQL and MySQL chapters include connection code. The SQLite chapter begins with creating tables and queries.
Connection-pool behavior
The public pooled-transaction API supports a capacity between 1 and 16 and up to three string-bound parameters through query1, query2 and query3.
var lease = db.acquire(timeout_ms=3000)
var result = lease.query1("SELECT $1::text", "Hello")
lease.release()
A lease stays on its acquiring thread. Close the pool after all leases have been returned.
Native dependencies
Some functionality uses C libraries such as PostgreSQL libpq and the MySQL client library. Native libraries must match the deployment platform and be available at runtime.
Application shutdown
Use a process supervisor and readiness checks when deploying services that must handle traffic continuously. Review Lifecycle for the sequence.
Next steps
Choose a small exercise: Hello World, Form validation, JSON API or Database tutorial.