i built my backend based on the last one i’ve sent you, but it took some time to figure some things out, i have 1.2M records in my DB which is not so big, ktor is really easy and a lot of the documentation is already there to help you even in the most complex use-cases and even if there’s not, some of the things are pretty simple and most software engineers should know the patterns like repository service etc… which are still being used today to make ur backend testable and scalable, how far are you willing to go and what approach you might take, is a different journey, IMO you should pick what works best for your team/company and what tools they know already, you can always see how some things are done in SpringBoot and come back to implement it in Ktor
my stack is:
• ktor for the whole KMP with common serialization for the pojos
• jooq + postgresql + flyway + hikari for the backend database
• SQLDelight for the other KMP targets
• Compose for shared UI (desktop, mobile, webassembly)
• slf4j for logging on the backend, napier. for the rest
• bcrypt for passwords
• jwt for auth endpoints with simple caching from ktor (might utilize redis in the future but so far so good) with resilience4j circuit breaker and ktor’s rate limiter
• test containers for the db tests
• prometheus exposed only locally to a caddy rp that utilizes loki and promtail to feed the logs to a public grafana server (might add authelia to the mix for better security, sign up disabled for start) to create the graphs i need for monitoring also ktor has an easy and also nice prometheus scraping api
• all of the backend dockerized and built through github actions then deployed to a VPS served through a subdomain, with redirects handled by caddy