WakaStart
Bases, stockage, routing

Bases de données et stockage

PostgreSQL, MongoDB, Valkey et buckets S3 : les dépendances persistantes de ton app.

Version v1.02 min de lecture

Bases de données et stockage

📍 Où trouver ça dans l'UI

  • Definitions : Infra → onglet ArchitectureDatabases / Storage
  • Instances par env : Infra → Environments → {env} → Databases / Storage

Une app a souvent besoin de stocker des données. Wakastart supporte 2 grandes catégories.

Base de données (Database)

C'est quoi ? Un système qui stocke des données structurées et permet de les requêter. C'est le coeur de la persistance de ton app.

Moteurs disponibles dans Wakastart :

EngineTypeUsage typique
PostgreSQLRelationnelle (SQL)Le défaut pour la plupart des apps : transactions, schéma rigide
MongoDBDocument (NoSQL)Données flexibles, schemas évolutifs
Valkey (= Redis)Key-value en mémoireCache, sessions, file d'attente

2 modes : IN_CLUSTER vs MANAGED

ModeOù c'est hébergéPour
IN_CLUSTERDans le cluster K8s Wakastart, comme un podDev, prototypes, faible volume
MANAGEDSur une infrastructure cloud managée (HA, backups auto, monitoring inclus)Prod sérieuse

→ Tu choisis le mode au niveau de la Definition (ex: defaultMode: IN_CLUSTER pour faciliter dev) et tu peux overrider par Instance (ex: en prod, on met mode: MANAGED).

Pattern d'usage typique

text
DatabaseDefinition "primary" ├── engineType: POSTGRESQL ├── defaultMode: IN_CLUSTER ├── defaultPlan: "essential" └── defaultVersion: "15"

Stockage (Storage Bucket) — S3

C'est quoi un bucket S3 ? Un système de stockage de fichiers/objets : images, vidéos, PDF, archives, exports CSV… Tout ce qui n'est pas structuré et n'a pas besoin d'un schéma relationnel.

S3 = "Simple Storage Service" (à l'origine Amazon, repris par plusieurs providers avec une API compatible). Wakastart provisionne un bucket dédié pour chaque environnement.

Différence avec une BDD :

  • BDD = données structurées, requêtables (SELECT, etc.). Performant pour lire des champs précis.
  • S3 = fichiers entiers, stockage froid pas cher. Tu PUT un fichier, tu GET un fichier. Pas de requête dedans.

StorageBucketDefinition / StorageBucketInstance

Même pattern que les databases : tu définis une fois au niveau Architecture, instancié par environnement.

Une StorageBucketInstance produit pour le code applicatif 6 credentials :

  • S3_URL — URL d'API S3
  • S3_ENDPOINT — endpoint régional
  • S3_REGION — région physique
  • S3_BUCKET — nom du bucket
  • S3_ACCESS_KEY_ID — clé d'accès
  • S3_SECRET_ACCESS_KEY — clé secrète

→ Ton service les reçoit via des variables d'env (cf. chapitre Variables et secrets).