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

What's the relationship between this repo and eduardbcom/lookup-dns-cache? #38

Open
ghost opened this issue Mar 22, 2019 · 2 comments
Open

Comments

@ghost
Copy link

ghost commented Mar 22, 2019

No description provided.

@WoZ
Copy link
Member

WoZ commented Mar 25, 2019

Hello, @dmcquayps

Here is a story of this and that module. Author of eduardbcom/lookup-dns-cache has worked with LCMApps for some time. It was full-time paid job. Once we've faced a problem with performance of lookup with our NS servers and digged to this issue. We checked few modules and all of them had some issues: no TTLs, no multi-address support, awful codebase.

I decided to write our own module without mentioned issues. Also I decided to help opensource community and make this module public after it will be finished and tested in a production environment. But eduardbcom started to commit changes to github while he commited to our private gitlab server. I didn't know about that.

After few review cycles we changed code base (I will summarize them below). Ed decided to leave his code unchanged and under his authorship, despite of fact that me and @fox-hellraiser were code reviewers. Then we stopped partnership, After some time I found his module but it was not under our control. You know, development of module that you use in production, with support of team of tens of developers differ from solo-programming. I created this repository to make our code free as we planned. Also I decided to leave authorship of Ed, you may check authors of commits in our repo. His npm module is still available too.

So, the main differences:

  • We fixed a bug with uncaughtException error while resolving the same hostname uncached and in parallel. It's a sort of race condition.
  • We don't use callbacks and use pure event emitter concept + promises internally, so the code is much readable.
  • We use auto testing and full CI/CD cycle.
  • Our module doesn't use async module
  • We use it in production and support it like a production ready solution for highload systems.

@ghost
Copy link
Author

ghost commented Mar 26, 2019 via email

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

No branches or pull requests

1 participant