Moda is opportunistically moving functionality out of its Rails monolith (Mojo) and into microservices.
JsonApi is a specification for API requests and responses using JSON format. A main goal of the specification is to optimize HTTP requests, both in terms of the number of requests and the size of the data payload exchanged between clients and servers. While this is an extremely important consideration for customer facing layers, it is of less importance for micro-services, which reside on the same fast network.
The specification is used by mojo and the website.
The alternative is an API-first approach, where the only way to describe an API and its data is through an IDL, and all necessary code is generated from that IDL, and nothing is written by hand. This eliminates any confusion about field names, their types, the order, and so on. Whether we adopt something like OpenAPI (formerly known as Swagger) or something similar, there should be no need for JsonApi.
Very lightweight library, functional, built on top of FS2 and Cats Effect (or compatible). The only choice, really, for building a pure FP service.
Kotlin is increasingly being considered as a viable language option for microservices. Moda Tech should keep an eye on it as a "better Java" if functional programming is not a priority. Moving Kotlin out of Assess would require a strong estimate of the level of investment to support it at the platform level.
Battle-tested HTTP / MVC framework that is the industry go-to for Scala development; supports Futures and Akka.
Scala is a more-mature modern language that gives Moda Tech an approachable entry to functional programming. It enjoys widespread adoption and many library options for HTTP frameworks, testing, actors, etc.