|
We would love to get your thoughts on GoLang in 2016. The language has spectacular speed and it is fun to work with but we're wondering whether to brave an entire FinTech site with it. Our backup is Rails. I've noticed that Revel and other frameworks in Go have lost steam, due to React, Angular, and Ember replacing the frond end. But that has its upsides and downsides too. Go and React would make a nice pair, but we may have to reinvent the wheel to protect against many attack vectors that are already taken care of by Rails. Then there is hiring and on-boarding on a less-standard architecture. Yet that speed is so tempting. Braintree had some objections in 2013: https://www.braintreepayments.com/blog/gotchas-irritants-and-warts-in-go-web-development/ From a functionality standpoint, the site will be processing Stripe and/or Dwolla & Braintree; holding user profiles with private and public views; We'll do CloudFlare, SSL (DigiCert or CF), and Postgres in the back. We'll need to take care of CSRF, injections, user validations, OFAC checking etc. What do you guys think? If you or someone you know has done GoLang for FinTech, would you be willing to chat? |
I work for a startup called Mondo - we're building a full-stack bank and currently it's almost entirely in Go. However, this is a function of our architecture - we provide an API which our apps and frontend (some using react) communicate with. Behind this API are >100 microservices which comprise our application, and Go works exceptionally well for this type of architecture, as it excels at network services.
In your case it seems that you're building a web application, so Rails is going to be easier to build out a prototype, hire for, and has taken care of a huge number of your concerns already at a framework level. There is of course nothing stopping you from splitting out functionality later into smaller Go based applications, but I doubt at this point speed of code execution should really be a concern - if you're building a new company you need speed of product execution, no?
Regarding functionality, Go will do everything you're asking for: - CSRF can be handled with middlewares like Gorilla's CSRF package: http://www.gorillatoolkit.org/pkg/csrf - Postgres with the standard database package, or other packages on top - Third party APIs such as Stripe/Dwolla/Braintree will be fine - If you're looking at integrating with other (older) parts of the global financial network (eg. is there an OFAC checking service with a nice API?), then you may find other languages would be easier for these tasks. In our case we may end up abstracting some of these with services in other languages that already have libraries to interact with these systems, and then providing a nice internal API our services can interact with.
So, Rails has a huge number of framework level features which may help you move faster as you develop your product. But, yes, Go is perfect for Fintech applications, we're building a bank and love it.