i have been working with spring boot and angular for a few years now and every api i have built or inherited is stateless. jwt in the header, no server session, done. nobody ever questioned it on any project i was on.
but i realized i never really asked myself why we do this by default. i know the usual answers like it scales easily and any instance can handle any request. but it feels like the state just moves somewhere else, to the token, to redis, to the database. so what are we really gaining ?