This tool reminds me of Raymond Chen's (The Old New Thing) blog post "Microsoft corporate network: 1.7 times worse than hell". The network traffic on Microsoft's (1996) corporate network was 1.7 worse than Microsoft's Windows Hardware Quality Labs own network card stress tests. Network hardware that passed the stress tests would commonly fall over when it was plugged into the corporate network. :)
I have used Gor lots of times before and when I got into Go it was one of the first source codes I looked at.
I love seeing open source projects developing a "Pro" version. I've been using Sidekiq Pro for a long time now and I know for sure it won't be as heavily maintained as it is without the Pro option.
As far as Gor goes, when you develop a new feature, it's a really powerful tool to pass some of the production traffic to staging to see how the new feature reacts with real world traffic. It's a sure way to find bugs you usually miss with testing.
Good point! Well, deciding which features go to OSS version or paid is tricky, and you will never make anyone happy. But i try to decide based on demand, the more specific feature is, the bigger chance it will be in Pro version.
Note that you can replay traffic to SSL endpoint, but SSL interception only in Pro. SL interception is tricky, and in most cases application provide SSL through proxy, so you can intercept origin with Gor.
I'm looking for a sort of reverse solution for 3rd party APIs where you record a response to a request and generate a server with the same API endpoints that'll replay it.
I don't think it has much to do with virtualization, if I'm understanding correctly. You can think of it as the inverse of what your replay tool does. If you think of a service that does transformations on data:
Req --> Service --> Rep
Your replay service is a synthetic Req. I think the parent is proposing synthetic Rep. This can be useful in many scenarios where you effectively want to mock a downstream service.
'She looked on him. Never before in her life had she seen such a male. He made even Gunther seem a lesser man. Her imagination had not even dreamed that such a man could exist. The men she had known earlier, even Gunther, had been no intimation that there might be males such as these. Such men, she thought, could not exist in her time. In her time there was no place; there could be no place, for such men as these.'
hahaha. This is why you google names before you pick them.
The system cringed as its owner brought forth the open-source tool. "I am a production server!" it cried indignantly. "How dare you test me before my time! Guards!" it called. "Guards!"
Admin installed the open-source tool and looked at it. "You will be tested," he said.
"You do not dare to test me!" laughed the system.
"You will be tested," said Admin.
"Do not test me!" wept the system.
"You will be tested," said Admin.
I watched this exchange. Truly, I believed the system would be tested. It was a system, and on Gor it had no rights. Perhaps on Earth, in its permissive society, which distorts the true roles of all beings, which forces both system and operator to go unhappy and constrained, which forbids the fulfillment of owner and server, such might not happen. Perhaps there, it would not be tested. But it was on Gor now, and would undoubtedly feel its true place, that of server. It was a system. It would be tested at will. Such is the way with computer systems.
Great tool - we used gor on our team recently to test a rewritten legacy API with captures of real production data. It was invaluable for exposing edge cases in the requests that we hadn't considered.
Thank you! I think one of the major differences here is that Gor is not not a proxy, you do not have to put 3-rd party tool to your critical production path. Gor intercepts traffic and not affect your app - way more safe. Also betamax is more a tool for service virtualization, rather then for continuous regression testing, not talking about load testing. But it is still cool!
Well, it does not really depend if you doing support by mail or phone, you still spend developer time. For most of the cases 4 hours is more then enough, but for example if you app require complex middleware, and you want me to help write it, it may take longer then 4 hours. If so I can provide additional support on hourly basis.
Feel free to ask any questions. To add full context, based on the all positive feedback i decided to work on Gor full time https://medium.com/@buger/working-on-open-source-full-time-a...
Thank you! Ready to answer any questions.