Skip to main content

Backend Rust

Cargo workspace at splick-backend-rust. It exists so a bounded context can move from Spring to Axum without changing Kong paths, Postgres schemas, or stream names. Health matches the Java probe shape GET /actuator/health.

The top-level README still says the relay is the first and only candidate. That text is stale. services/ contains an Axum binary per context, and a search of those sources shows no todo!() or unimplemented!() stubs. Judge readiness by contract tests and by a single writer per schema, not by the README.

Layout​

splick-backend-rust/
Cargo.toml
crates/ shared libraries
services/ one binary per context
Dockerfile multi-stage, selects the binary
Makefile

Prerequisites: Rust 1.82 or newer. cargo check --workspace is the first smoke test. Copy .env.example to a gitignored .env. The example file documents relay and communication ports; other services read SERVER_PORT or PORT, DATABASE_URL, and REDIS_URL.

Cutover rule​

Point Kong at the Rust upstream for one service only after:

  • Flyway history matches the Java schema (the Rust service must not invent a divergent migration).
  • The Java process for that context is stopped.
  • The Java relay is stopped if the Rust relay is the publisher, or the reverse. Never both.

See Java to Rust and crates.