How the products work together
This guide assumes you already have booking UI and API code; it describes an architecture, not a preinstalled template. For separate frontend/API repositories, deploy each and configure the frontend's API URL and CORS.
On reads, the API checks cache, then reads MySQL on a miss and caches the result with a TTL. On writes, save to MySQL first and invalidate/update related cache. Implement this logic in your app. All products below belong to the same organization.
Browser -- public HTTPS --> Flash Deploy (web + API)
|-- private --> MySQL: accounts, bookings
`-- private --> Redis: available-slot cache
Only the server holds database credentials.1. Prepare data services
- Create MySQL in the same org as the app. Review capacity, connection limits and cost; wait until ready and open Connection.
- Copy the private address and port into server-side env. Use variable names your driver/ORM reads; not every app uses DATABASE_URL.
- Run migrations to create the booking tables. Test on a nonproduction database first and check backups and compatibility before changing real data.
- Create Redis in the same org only if cache is implemented. Copy its private endpoint and credentials into the variables your code uses.
2. Deploy the application
- Create a project and select the GitHub repository/branch or source ZIP.
- Check the runtime template, build/start commands, public port and env. Never put database credentials in public framework variables.
- Deploy, inspect build logs and confirm startup and MySQL connectivity in runtime logs.
- Open the project URL, create a booking through the UI and reload to verify it was stored.
3. Verify before inviting customers
- Redeploy the app and read the existing booking; it must remain in MySQL.
- Let a short-lived test cache entry expire, then verify the API fetches the source data.
- Edit/cancel a booking and check that stale cache is not shown after the operation completes.
- Verify that one account cannot access another account's private bookings.
- Configure the domain and verify HTTPS, costs and data recovery. Do not delete the database to test persistence.