excited to be here. I'm trying to decide for an optimal architecture for the application I'm building and I'd appreciate your thoughts on it.
In most general terms, our application will serve dozens or hundreds of large corporate users in real-time. It will have direct integrations with customer banks and it will be able to show / manage funds across different financial institutions for a customer.
Considering the above, I'll need an architecture that can easily scale horizontally, but I don't want to, by no means, compromise the ease or quality of development.
I'm deciding between micro-service and serverless architecture. I have a lot of experience building in micro-service environments on JVM/AWS stack and I like the flexibility one gets with Terraform when it comes to spinning up new components or having multiple environments (testing / production / ... ). However, I'm reading lately a lot about serverless architectures and their ability to organically scale. Specifically, I've been looking at Kotless - a serverless architecture based around Kotlin language and AWS.
With Kotless, they're using
LocalStack to simulate non-production builds and all the Terraform is auto-generated. While this can be cool to save some development time, I'm a bit skeptical about the:
- flexibility of such solution
- whether the generated Terraform code is actually 100% what is needed
- the ability to spin up several environments (e.g. Sandbox) that are functionally the same as Production environment
- the ability to confidently test such solution with functional and/or manual tests
- overall sustainability of such solution
I'm attracted to the idea of out-of-the-box autoscaling and not a huge deal of DevOps, but at the same time a bit wary of how flexible that architecture generally is. The last thing I want to do is to start serverless only to realize I simply can not do some stuff with it, and then revert back to micro-services.
Would be amazing to get your feedback, especially if you have experience with serverless architectures.