XRAPH/Work/Microservices
Rust · since 2021

North

The second attempt, with better instincts. North got the lifecycle model right and the ergonomics wrong. Both lessons went into Forge, which is why Forge’s startup is an inspectable graph rather than an init function.

Language
Rust
Category
Microservices
Since
2021
Stars
17
Repository
01

Anatomy

2 modules
01

Service

A microservice with lifecycle and configuration built in.

02

Discovery

Registration and lookup across the fleet.

02

Why it exists

Design notes

#What it is

A microservice framework in Rust, published in 2021 and no longer maintained. The second of two attempts at the same question: how much framework can you offer in Rust before the type signatures stop being readable by the people you are trying to help?

#What it got right

Startup modelled as an explicit dependency graph rather than an init function, largely because Rust forced me to be precise about ownership and ordering. That idea is load-bearing in Forge today.

Errors that carry the operation being attempted rather than only the cause. "connection refused" is not actionable; "starting postgres pool for service 'assets': connection refused" is.

Extension points designed before there were extensions, because retrofitting a seam in Rust is genuinely difficult.

#What it got wrong

The signatures. A handler that resolved two services from a container and returned a response had four generic parameters, two lifetimes and a trait bound wider than my editor. Async traits had not landed, so anything async meant boxed futures and the ergonomic taxes compounded.

A framework whose signatures only its author can read has failed at the one thing frameworks are for.

Some of that has since improved in the language. A version written today would be a meaningfully better experience. I am not going to write it. Octopus is where my Rust goes now, and a gateway has no user-authored handlers in its type signatures.

03

Signals

GitHub
Stars
17
Language
Rust
Since
2021
Adopters
00

Shipping something on North? Nobody is listed here yet. Tell me what you built and you will be the first.

Get listed