We pick Java
Plugins for Paper, Purpur and Folia
Frozcraft runs on Paper and Folia from one codebase. An action about a player runs on that player's region thread, so the plugin does not hang the server.
Store deliveries into the game
Frozcraft receives purchases from the Flaem store over a Unix socket and hands them to players in the game. The socket is reachable only on that machine, so the plugin opens no port to the internet.
Requests off the game thread
The plugin collects player stats and runs actions on players. HTTP requests land on Java virtual threads, never on the thread that runs the server's ticks.
Add-ons installed at hosting customers'
Flaem add-ons install on the hosting customers' game servers. Such a server already runs on Java, so an add-on is one jar file with no extra runtime.
Bookings without double slots
slotline books rooms, courts and equipment on Spring Boot with PostgreSQL. A resource lock inside the transaction and a concurrency test make sure two people cannot take the same slot at once.
Services with a documented API
In slotline, Flyway migrations and springdoc-openapi docs come with the code, and Spring Security with JWT tokens guards access. Many developers know Spring Boot, so the service is easy to hand on.

