Architecture

FileResponsibility
src/note.rsThe data, the inputs and their rules, and the two boundary traits
src/memory.rsA volatile in-process repository
src/service.rsThe application boundary over any repository
src/routes.rsThe only Axum module: parsing, status codes, JSON
src/main.rsThe composition root and host

Reading the wiring

The adapter (routes.rs) depends on the service; the service depends on the NoteRepository port; the memory store implements that port. Nothing else knows that HTTP exists, and the store is replaceable without touching either the rules or the transport. That is the same shape the application model describes — with one slice instead of three.