Hacker News new | ask | show | jobs
by bdcravens 4126 days ago
I'm trying to decompose a Ruby monolith into microservices, but is it necessary to change languages? For my use case, I'm less concerned with languages than I am with libraries (AWS library, Sidekiq, Devise, deployment toolchains, etc).
1 comments

Of course it's not necessary to change language, but one nice thing about microservices is they don't have to be the same language.

You might see significant advantages moving to ruby microservices if you have high traffic and a complex monolithic app which would benefit from being split up. They are not a panacea of course as they introduce significant complexity, whatever language they are implemented in - it's a matter of trade-offs and once your monolith reaches a certain size it might be worth splitting it up.

Re libraries, most of the ones you mention have analogues in go or are pretty simple to replace, save AWS, which is apparently coming soon:

AWS - https://aws.amazon.com/blogs/aws/coming-soon-aws-sdk-for-go/

Sidekiq - go myFunc()

Devise - bcrypt.CompareHashAndPassword + the mailer functions

Deployment - Rsync or Ansible - this is simpler in go as all you require are your executable + templates