Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
intellij-plugins
Open-source plugins included in the distribution of IntelliJ IDEA Ultimate and other IDEs based on the IntelliJ Platform
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Dynamo is a great database to work with, but the mapper that comes with it isn't kotlin-friendly. You'll either have to make tons of compromises to make your data classes bean-compatible, or you'll have to find a plugin (for the v2 sdk) to support data classes. This one works well for me, but it doesn't seem to be popular at all, so YMMV.
TBH, the official SDK dynamo client library isn't great for either. If you're looking for something lightweight, you could try http4k-connect - the dynamo client API is much nicer, does type-safety by plugging into the http4k lens system, and is zero reflection (using Moshi and generated adapters), which means you can simply cross compile to GraalVM. We're using it for native Kotlin Lambdas using the custom http4k Lambda runtime and it's 🚀🚀🚀. You can also use it backed by the OkHttp client wrapper if you want.
I have to say that, from a development perspective, it's really hard to beat JetBrains IDEA. I've been using it for so long that I'm not really aware of its competitor's advantages.
For large, complex projects it's really hard to beat the Spring ecosystem that others have mentioned, but while Spring is going to be great for both landing and job and covering a huge variety of use-cases in a well-tested, robust, secure fashion, there are a lot of modules and it can take a bit to get used to all of it.
There are projects that feel lighter-weight such as Micronaut and DropWizard, although in many regards I feel like this is just a perception (Spring is quite modular and you can pull in what you need, but that process can involve some nitty-gritty tailoring because the default is batteries-included).
From a build perspective, Maven and Gradle are simple and mature and will cover any use-case you can really imagine. The plugin ecosystems are really hard to beat even if they're not the new kids on the block anymore.
From a build perspective, Maven and Gradle are simple and mature and will cover any use-case you can really imagine. The plugin ecosystems are really hard to beat even if they're not the new kids on the block anymore.