Rullst AcademyRullst Academy/Lesson
From application to release with Rullst · Lesson 08 / 12

The server responds, but does the application work?

A lit indicator does not prove a robot can walk. A fixed HTTP 200 does not prove the database is available either.

Learning paths30 min

Let's discover together

  1. 1

    Open /healthz and /readyz while the kit runs. /healthz returns a fixed process signal. /readyz queries the missions table and includes the release label only when that query succeeds.

  2. 2

    Read tests/deployment.rs. The test creates its own in-memory database, removes the table and checks responses. This failure does not touch missions.db. Do not run DROP TABLE on your project database to imitate it.

  3. 3

    Before running the test below, predict HTTP codes after failure: /healthz still 200; /readyz 503. Run and compare with assertions. The error body does not expose SQL, database paths or missions.

  4. 4

    A useful diagnosis states symptom, hypothesis, test and evidence. “Storage unavailable” is better than restarting everything without observing. Do not paste personal logs; the test uses fictional data only.

  5. 5

    The readiness query does not prove email delivery, authorization or every future write. Record exactly what it covers. Periodic monitoring also needs appropriate intervals and limits.

From reasoning to execution

The core path runs on your computer with fictional data. Podman, Quadlet and Caddy are optional extensions; no domain purchase or cloud subscription is needed. This lab is not ready for public writes.

Read the steps before running anything. The commands below are a reference; README.md explains your OS syntax and LAB.md contains the sequence. The site does not run these commands for you.

cargo test --locked readiness_checks_storage_and_proxy_origin_is_explicit
My evidence record

Write a four-line diagnosis: symptom, hypothesis, test, result. Add one thing /readyz does not check to avoid overclaiming.

Separate prediction, execution and observed result. Record “not executed” when the environment is missing. Site progress does not validate real deployment or grant professional certification.

My files and GitHub

Official links and next step

✦
YOUR MISSION

Compare liveness and readiness using an isolated storage failure.

Now it's your turn

Discovery workshop

Decide using evidence

After removing the table in the test’s isolated database, the process still handles HTTP.
Build your answers and check when you are ready.
A moment to understand

Why should /readyz return 503 when the table is missing?

I need a hint

A process can be alive without being ready to work. The test isolates failure and checks the response does not disclose internals.

Loading your journey…

Take it with you

Write a four-line diagnosis: symptom, hypothesis, test, result. Add one thing /readyz does not check to avoid overclaiming.

At your own pace

My files and GitHub

Every lesson can become your own record: code, notes or a practice plan. Saving a file to GitHub is optional and does not change your XP.

Student guide

The editor and downloads open when this lesson is available to your account. Check access below or return to the track map.

Checking your access to this lesson…

Rullstpetbot

AI can make mistakes. Check the lesson material.