[HN Gopher] Happy 10th Birthday, Sidekiq
       ___________________________________________________________________
        
       Happy 10th Birthday, Sidekiq
        
       Author : nickjj
       Score  : 199 points
       Date   : 2022-04-05 11:41 UTC (11 hours ago)
        
 (HTM) web link (www.mikeperham.com)
 (TXT) w3m dump (www.mikeperham.com)
        
       | dayvid wrote:
       | Sidekiq's a really good library from my experience. I don't use
       | Rails nowadays, but they've had some of the best libraries to
       | work with. ActiveAdmin was another amazing library that saved me
       | on a consulting project.
        
       | hbrundage wrote:
       | So glad that Mike has set up a sustainable model for building
       | rock solid infrastructure, however:
       | 
       | I can't stand that you need to pay for a pro license to avoid
       | completely avoidable data loss. Sidekiq doesn't use RPOPLPUSH for
       | moving jobs around until you start paying -- doing the exact same
       | thing with a different, more correct command. No new
       | infrastructure or configuration is needed. To me this feels
       | sketchy and like a betrayal of the pro-version business model --
       | willfully introducing data loss in order to drive upgrades
       | instead of just removing capabilities or features.
        
         | brightball wrote:
         | This touches on one of my favorite things about Ruby as a
         | language. The functionality you're asking for becomes pretty
         | easy to monkey patch in yourself without breaking your upgrade
         | path or forcing you to maintain a fork.
         | 
         | IMO that easy of tweaking 3rd party libraries is the reason
         | that Ruby's ecosystem is so polished.
        
           | nickjj wrote:
           | Yeah that is an interesting point.
           | 
           | It's really easy to drop in an initializer, make your patch,
           | let it ride in production for a while and then contribute
           | your patch back to the main project than it is to set up a
           | fork and all of the ceremony involved with keeping it up to
           | date.
           | 
           | It's a good example of removing barriers of entry or an idea
           | of Ruby's "sharp knives". Great for when you need it but can
           | also be a disaster when abused.
        
             | brightball wrote:
             | Yep. Definitely a great power, great responsibility tool.
             | 
             | It's the one thing that keeps Ruby closer to true Aspect
             | Oriented Programming than any other language (in my
             | experience at least). It's probably the biggest thing that
             | I miss from Ruby when working in other languages, even ones
             | that I love like Elixir.
        
         | grumple wrote:
         | Sidekiq is open source, so couldn't you or someone else make
         | another gem for the change? I know there are gems already that
         | enable sidekiq to replicate some of the paid or enterprise
         | features without paying for those plans.
        
         | mperham wrote:
         | This is also the way Resque does it still today: LPOP. Sidekiq
         | OSS just offers parity with Resque, it never tried to solve
         | this problem.
        
           | senotrusov wrote:
           | It surprises me that it is a problem that needs to be solved,
           | and not just a way it should be done from day one. Back in
           | 2011 I wrote a small ruby class that interacts with redis and
           | provides me a reliable method to consume messages from queue.
           | 
           | Back than I just read the redis docs, understands that
           | BRPOPLPUSH is the right method to call, and made a few ruby
           | functions to do so, you could see it here [1], they are plain
           | and simple.
           | 
           | From my perspective, it's just feature starving OSS part, to
           | push customers towards the paid solution.
           | 
           | [1]: https://github.com/senotrusov/redis-
           | call/blob/master/lib/red...
        
           | hbrundage wrote:
           | I mean, it's also a bug with Resque? Resque predates the
           | introduction of the new command in Redis and hasn't really
           | been maintained since. "My software is as buggy as 10 year
           | old software unless you pay" seems pretty sketchy to me!
        
       | jakswa wrote:
       | Sidekiq has stayed with me for most of my rails projects. Happy
       | to read this. And I bet I'll continue to remember it as I run
       | into projects that were inspired by it, like Shoryuken (which
       | tries to be "sidekiq for AWS SNS/SQS" https://github.com/ruby-
       | shoryuken/shoryuken).
        
       | alberth wrote:
       | Off topic: is "open-core" any different than a "Freemium
       | commercial product you can self-host"?
       | 
       | I don't want this question to sidetrack into a heated debate
       | about open source vs commercial. But I am genuinely curious if
       | there is a difference between the two.
        
       | bdcravens wrote:
       | Been a happy Sidekiq Pro customer for years.
        
       | bpicolo wrote:
       | I think Mike's success is awesome. Sidekiq has created so much
       | value for startups in our industry and can operate up to a scale
       | very few companies have to actually worry about. Other folk have
       | reproduced similar in other ecosystems to success as well (see
       | Hangfire) and there's another half a dozen ecosystems out there
       | where a motivated person could capture the same value.
       | 
       | The only downside I see is that it's definitely led to the
       | proliferation of commercializing OSS libs by making them slightly
       | worse on purpose and adding a "go pro!" version. All too common
       | these days. But again, can't blame anybody on this path -
       | creating good software isn't easy and people do deserve to be
       | paid for it.
       | 
       | The other place ripe for opportunity is Django-admin style tools.
       | It's been out for a decade maintained and free and it's just an
       | awesome tool. There are similar frameworks in Ruby, PHP (part of
       | laravel's pay to play offering), and Elixir, but not too much
       | outside that. I'm pretty darn surprised there's no Java or
       | JavaScript world admin framework that can be plugged into with
       | code. (react admin and the like are too low level, and being SPA
       | centric don't fight the whole battle - getting 95% of the way
       | with no code other than pointing at a model is the real value
       | add). One could also make oodles of cash in .NET here i imagine
        
         | claytongulick wrote:
         | For JavaScript there's strapi [1]
         | 
         | https://strapi.io/
        
           | m12k wrote:
           | And Directus was recently ported from PHP to JavaScript as
           | well: https://directus.io/
        
         | lf-non wrote:
         | Regarding django-admin style tools, there are solutions like zk
         | [1] & apache isis [2] for java which are somewhat comparable,
         | though more enterprise oriented.
         | 
         | [1] https://www.zkoss.org/
         | 
         | [2] https://isis.apache.org/
        
         | fomojola wrote:
         | I think the lack of a dominant JavaScript domain model syntax
         | has limited the availability of admin tools like django-admin.
         | Maybe something driven by OpenAPI/Swagger model definitions?
         | 
         | It is ancient and no longer upgraded (and based on angularjs),
         | but I'd argue that ng-admin (https://github.com/marmelab/ng-
         | admin) is the fastest SPA/JavaScript admin framework out there.
         | It is a bit opinionated about paging and filtering (and painful
         | to do moderately complex UI customization), but beyond that I
         | have seen nothing that has come close to the same level of
         | "quickly get CRUD admin UI available" in react/vue land,
         | largely because (similar to django) it had its own domain
         | entity model.
         | 
         | The same team moved from there to react-admin, and looking at a
         | couple of react-admin experiences I've been involved in I'd
         | argue that it wasn't aiming for the same ease of use.
        
         | pizza234 wrote:
         | > The only downside I see is that it's definitely led to the
         | proliferation of commercializing OSS libs by making them
         | slightly worse on purpose and adding a "go pro!" version
         | 
         | This is a slightly pessimistic take on open core :)
         | 
         | I'm personally a big fan, as opposed to libraries that are not
         | maintained and die. Sidekiq's competitor, Resque, has a
         | somewhat uncertain situation (it's been dead for an year or so,
         | then new maintainers took over).
         | 
         | The advantage of open core is that nobody prevents devs to
         | create their own plugins, especially for products that are
         | accessible to developers without highly specific knowledge
         | (say, a relational database); this is actually happening with
         | Sidekiq - for example, there is a plugin for a more granular
         | scheduler.
        
         | jon1628492 wrote:
         | I'm curious about the ones you like for Elixir! I've been
         | looking for a bit and haven't found one that seems to be
         | maintained and close to feature parity with Django admin
        
           | bgentry wrote:
           | Oban is really great: https://getoban.pro
           | 
           | Built on Postgres, it lets your background jobs achieve
           | transactionality and consistency with your database. Its
           | architecture is also well designed to allow it to scale up to
           | about as much as Postgres can handle. The Pro version comes
           | with a great web UI built with Phoenix LiveView that does
           | just about everything one could ask for.
        
           | beedrillzzzzz wrote:
           | Ash is an amazing framework for Elixir that comes with
           | functionality very equivalent to DRF/filtersets/etc, admin,
           | as well as automatic JSON APIs, GraphQL APIs, plus works
           | great behind LiveView. The maintainer is extremely active and
           | is about to release a much improved website for getting
           | started and learning. I highly suggest joining the discord if
           | you are looking for Django for Elixir.
           | 
           | Website: https://www.ash-elixir.org Discord:
           | https://discord.com/invite/D7FNG2q
        
           | bpicolo wrote:
           | There definitely isn't one at feature parity, just better
           | attempts than I've seen in other ecosystems, heh.
        
       | sickcodebruh wrote:
       | Sidekiq is one of my first answers to the question, "Why would I
       | choose Ruby in 2022?" It is a fantastic library and Mike is a
       | remarkable developer. Congratulations on hitting 10 years and
       | thank you for everything!
        
       | uptime wrote:
       | This is a great summary of a positive outcome for a hybrid OSS
       | project. I took a look at the other blog posts - has anyone seen
       | writing from the author that covers his experience supporting the
       | pro and enterprise versions? I imagine that would be hard to do
       | alone!
        
         | mperham wrote:
         | It's worked out so far. I knew it would be tough to scale up
         | myself as support so I set down as couple of policies:
         | 
         | 1. Do it in public if possible via GitHub issues so others can
         | also answer and search in the future.
         | 
         | 2. Don't allow more than N questions per year per customer. A
         | few have drowned me with requests. Nope, you are buying a
         | product, not a trainer or teacher. Read the docs, watch the
         | videos.
         | 
         | 3. Pour everything I know into the wiki docs. Note each wiki
         | page will talk about semantics, edge cases, etc. That's all
         | there to get ahead of the support inquiries.
        
           | aaronmiler wrote:
           | #3 is one of my favorite things about Sidekiq. Anything I'm
           | trying to do with Sidekiq, I check the wiki first, and it's
           | usually there. Any time I've introduced the library to a
           | team, the docs and wiki are always my recommendation for
           | answering questions. Even Pro/Ent features are covered there,
           | which is so much nicer than having the docs hidden behind a
           | login/paywall.
           | 
           | Thanks for the hard work you've poured into them Mike!
        
       | mos_6502 wrote:
       | Sidekiq is an excellent library, and a great model for open-
       | source monetization.
       | 
       | Avoid hostile/nonfree licensing provisions that restrict
       | commercial use or "require corporations to pay up". Instead,
       | create real value in diversified offerings built upon the OSS
       | project (which is in no way artificially limited). Sidekiq is a
       | gift, Sidekiq Pro & Enterprise are products.
       | 
       | Offer paid features, support, SLAs, etc that really appeal to
       | "enterprise" use-cases. Trust that users will convert as their
       | need for such functionality is justified by their businesses'
       | growth and scale.
        
       | JohnBooty wrote:
       | That's awesome. A significant percentage of Ruby shops are
       | running Sidekiq. I'm happy for his success.
       | 
       | The free version is very capable too; he found a very nice
       | balance between "free version that is still very usable" and
       | "paid version with really useful additional features."
        
       | Aleksdev wrote:
       | Nothing wrong with making a profit. Used sidekiq on all the rails
       | projects I worked on. Great little gem :-)
        
       | iamricks wrote:
       | Sidekiq is the best library i have ever used, i have never ran
       | into any issues using it and Mike has personally answered a bunch
       | of my Stack Overflow questions that involve Sidekiq. He deserves
       | every dollar.
        
       | mtalantikite wrote:
       | Just wanted to say the Prehistory section brought up a lot of
       | nostalgia for me. Those early Ruby projects and articles that
       | Ezra wrote led me to working at his company Engine Yard back in
       | the beginning of 2008. Lots of memories of late nights trying to
       | fix GitHub's deployment (GFS2 nightmares) as they were growing in
       | the community. I remember when Resque came out and we started
       | using it for so many of our customers. Tons of really smart
       | hackers hanging out at the office/apartment on South Park.
       | 
       | Definitely wouldn't have my career without all those early Ruby
       | hackers working together in community. Makes me wonder where in
       | the OSS world that community is thriving just like back then.
        
       | asim wrote:
       | I remember when Mike posted about making $1m from sidekiq. It was
       | always such an inspiration and it's amazing to see how far it's
       | come. Kudos to Mike and I hope others find that path successful
       | too.
        
       | Murkin wrote:
       | Amazing project, only sad note is the monetization side is a bit
       | neglected.
       | 
       | We were ready to pay for Sidekiq, but the pricing model was just
       | off and we just used an OSS lib to patch the missing part.
       | 
       | Mike if you are here, might be worth to invest some time in
       | pricing research, you could probably double your revenue.
        
         | mperham wrote:
         | I don't really understand what you mean but I'd like to hear
         | details.
        
         | ed wrote:
         | > the pricing model was just off
         | 
         | Out of curiosity (I also sell enterprise products) what would
         | make the purchase a no-brainer? Quarterly payments? E.g. I've
         | heard that ~$300 (ballpark) is the max amount an individual can
         | spend without a review process. Is that what you mean?
        
       | axelfontaine wrote:
       | This is really an amazing achievement! It was Mike's IndieHackers
       | interview (https://www.indiehackers.com/interview/how-charging-
       | money-fo...) that really pushed me over the edge to go open-core
       | with Flyway in 2017 and give it a sustainable future. Thanks
       | again Mike, if you're reading this!
        
       | ch4s3 wrote:
       | I'm interested to see what he decides to do approaching 2030.
        
       ___________________________________________________________________
       (page generated 2022-04-05 23:02 UTC)