Hacker News new | ask | show | jobs
by code_duck 1918 days ago
This is a familiar struggle, as far as the concepts. I did a rather similar project based on Etsy about 10 years ago. We made a javascript-invoked widget (probably an iframe IIR), intended to be embedded onto blogs and webpages with a single line of code. This gathered a lot of data from Etsy. Shop details, items for sale, feedback, favoriters. Somewhere there's an article on the Etsy blog, but if curious you can check out this blog article. http://happycloudmoments.blogspot.com/2010/07/craftcult-intr...

At the time I already had a popular site based on their API. I had noticed that in general, it's a tough business to be a disconnected 3rd party developing on a closed platform. You're at the whim of the platform owner, slave to their intentions and decisions, good or bad. It's like having a remote job where nobody talks to you.

I got over API unreliability with a system to retry calls a few times. Etsy API calls could fail in several distinct ways, so my parser had a lot of stages (check for HTTP status, parse for certain strings, check if it's empty or an empty string, so forth). The calls also occasionally took much longer than usual. I implemented a caching system for the widgets.

It sounds like Shopify reliability is much worse than Etsy's at the time. Other than outages, I believe we'd get about 2% of calls failing for different reasons, which would usually work on a retry.

Changes were difficult to deal with because they could come suddenly. The worst ones were breaking changes that apparently Etsy was unaware of. I'd start getting errors and have no idea if it was a bug or an intentional change, and write workarounds only for them to fix the bug a few days later. We also experienced the removal of features with other apps. Or, one time we spent a couple months on a feature and then it turned out Etsy had been working on the same thing themselves.