Skip to main content

Java to Rust

splick-backend-rust is a Cargo workspace that mirrors the Java service names, ports, and PostgreSQL schemas. The goal is a strangler fig: Kong can point a route at the Rust process for one context when that port is ready, without changing the public contract or the stream names.

Crate or serviceRole
splick-sharedTracing, Prometheus, health at /actuator/health, Redis publisher, outbox writer and relay engine
splick-securityJWT and internal API checks for Axum
splick-inboxInbox persistence
splick-i18nMessage rendering
splick-s3R2 adapter
splick-idempotencyIdempotency key store
splick-clientsInternal HTTP clients
services/*Auth, social, expense, feed, media, notification, communication, messaging, outbox relay

The Rust workspace README still describes only the relay as the first candidate. The tree now contains Axum services with handlers and workers, and there are no todo!() placeholders under services/. Treat the README as behind the code. Cut over one Kong route only after the Rust service passes the same contract tests and writes the same schema. Do not run the Java and Rust process for one context on the same schema at the same time: both would claim outbox rows or serve conflicting writes.

Messaging and the relay both default to port 8088 inside Rust config. Override with env when both run on one host. The Java compose file already publishes the relay on host 8089.