Live data from Hacker News

How Shopify implemented its secure authentication service

engineering.shopify.com

51–56 of 56 posts

Re: How Shopify implemented its secure authentication service

#51
post #23
post #17

Earlier quoted context omitted.

I do a lot of developing with Shopify and it’s a mess. One of the worst development experiences of all time. Because they’re so monolithic focused. The API’s you can use are pretty sluggish and poorly documented. Rails is just not meant for heavy transactional load. And e-commerce needs async to handle what can be a huge load. Taobao is java or php and they handle load far greater without fault. Shopify is much bette…

> One of the worst development experiences of all time... The API’s you can use are pretty sluggish and poorly documented. Can you elaborate? Shopify released their GraphQL Admin API in 2018, which has built in documentation, as well as an interactive IDE (Graphiql) that you can run on your shop. As long as you're not doing anything too crazy that exceeds the throttle (e.g., syncing 1000s of products), they're pretty…

>Shopify has invested heavily in their sharding setup so that it can be handle high load and scale quickly. e.g., flash sales where baseline traffic will 3x in a matter of seconds. See the discussion of pods:

Your parent is using Taobao ( Which is like the Amazon in China ) as example. Which means the word "scale" means completely different thing. I am willing to bet Taobao's RPS on singles day is a lot higher than the highest RPM during Shopify's biggest flash sales.

That said there is no reason to believe that pod in shopify cant handle that scale.

Re: How Shopify implemented its secure authentication service

#52

Earlier quoted context omitted.

If its so simple to port Ruby code to Crystal, then how come nobody has gotten around to porting Rails to Crystal yet?

Please re-read what I said. I never claimed it was easy to port in every situation. I merely pointed out that " depending on what you are doing they (semantic differences) are minor considerations." and then gave an example where that was the case with a simple application I was working. If you want a more complicted library that was ported from Ruby to Crystal then you can also look at Sidekiq ( https://www.mikeperh…

But when this doesn't apply to even basic parts of the Ruby ecosystem, like Active Support, these 'minor differences in some cases' are fundamental showstoppers for a company like Shopify, which was the context.

The original comment said 'without needing to really think in a whole different programming experience'. Ruby without #send and #eval is a very much a whole different programming experience for a company like Shopify.

Re: How Shopify implemented its secure authentication service

#54
post #4

Earlier quoted context omitted.

IIRC there are still many large companies using Ruby/Rails still, they've just also diversified their tech stacks (as larger companies tend to do). AFAIK the list includes: GitHub (MS has a few Rails-based acquisitions now), Airbnb, Groupon, Square, Cookpad, Kickstarter, Hulu, etc..

Pretty sure Stripe is a Ruby shop as well.

JP Morgan Chase and McKesson both use Ruby with McKesson leading the pack in RoR LOC among the Fortune 50

Re: How Shopify implemented its secure authentication service

#55
post #42

Earlier quoted context omitted.

I would love to see this happen, but I don't think it's realistic anytime soon. Crystal just doesn't have the community that ruby has, and as teams reconsider certain aspects of their applications, languages like Elixir and Go make way more sense. Creating a compiled language with similar syntax to Ruby is great, but there's so much more involved than just that if you're talking about building a serious, commercial p…

Kotlin is a good transition language from Ruby. Concise with a nice balance between FP and OOP and all the scaling benefits of the JVM.

What about Elixir, seems to be a good option as well

Re: How Shopify implemented its secure authentication service

#56
post #42

Earlier quoted context omitted.

Kotlin is a good transition language from Ruby. Concise with a nice balance between FP and OOP and all the scaling benefits of the JVM.

What about Elixir, seems to be a good option as well

Not if you want to retain the OO features of Ruby. Beyond the surface syntax similarities Elixir is at the opposite end of the spectrum compared with Ruby.
Post reply on HN