Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade dependencies to work with ruby 2.4, tweaked rspecs #21

Closed
wants to merge 3 commits into from

Conversation

kigster
Copy link

@kigster kigster commented Jun 9, 2017

  • reduced sleep time during specs; seems to still pass
  • made rspecs run in random order
  • that uncovered a couple of unstable specs which I think I fixed
  • turned off logging in specs unless ENV['DEBUG'] is set
  • remove version binding from bundler, rake
  • upgraded avro and redis gems.

 - reduced sleep time during specs; seems to still pass
 - made rspecs run in random order
 - that uncovered a couple of unstable specs which I think I fixed
 - turned off logging in specs unless ENV['DEBUG'] is set
 - remove version binding from bundler, rake
 - upgraded avro and redis gems.
@kigster
Copy link
Author

kigster commented Jun 9, 2017

My theory is that the specs are polluting thread space or something, basically the order in which you run tests matters, which is not good :( It's hard for me to tell whether tests are flopping because of my tiny changes, or if they'd flop even before. I guess I could submit a PR that ONLY has a random spec order defined, and no other changes, but right now I am not sure that this library is stable enough for wide adoption. I'll keep digging though.

@alanpeabody
Copy link
Contributor

@kigster Ruby threads can be hard, any improvement to the test suite is super welcome!

In terms of stability we are processing 10s of millions of events a day on multiple shards with multiple consumers using this library. I don't know what your use looks like, but it has proven stable for our needs.

@kigster
Copy link
Author

kigster commented Jun 10, 2017

That's good to know, let me keep looking at the code and see.

And as far as threads are concerned, what if the library used Celluloid instead of threads for concurrency?

I noticed that you are also using AWS SDK v1, which is obsolete at this point. Version 2 of the SDK seems to work out of the box, based on my testing following examples on the SDK documentation.

So I sort of see the evolution of this library, that uses Actors for concurrency, Config gem for configuration, and AWS SDK v2 for Kinesis, while the rest can probably be the same.

If this sounds like a good idea, I am happy to evolve this PR. But if not, I may just create a new project but perhaps thank this gem for the inspiration :) . Thoughts?

@alanpeabody
Copy link
Contributor

@kigster To be honest I think we are unlikely to want to invest any significant amount of time QAing major updates to this library on our current stack and with our current workload, especially with how stable and hassle free this has been for us so far.

If you want to make significant changes a separate library may be a better option. I have also started an Elixir implementation of this library that may be of interest to you, particularly if you look at the celluloid stuff: ello/ello-event-stream#1

I do hate to discourage you from contributing and your issues/PRs are very much appreciated and I hope the library helps you! Unfortunately this is just low priority for Ello as a company, and not something I am personally passionate enough about to help push forward in our production environment.

@kigster
Copy link
Author

kigster commented Jun 11, 2017

That's absolutely understandable, and is a entirely respectable choice, which I appreciate knowing before spending hours on it :)

Thanks for sharing you code anyway!

@kigster kigster closed this Jun 15, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants