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

Preparing Crow for production #143

Closed
The-EDev opened this issue Jun 7, 2021 · 5 comments
Closed

Preparing Crow for production #143

The-EDev opened this issue Jun 7, 2021 · 5 comments
Labels
further information required existing information is lacking, or feedback is required help wanted Contributions are requested task Non code related issue
Milestone

Comments

@The-EDev
Copy link
Member

The-EDev commented Jun 7, 2021

In the release notes for v0.3, I mention that I would call it v1.0 if it wasn't for the lack of of production environment feedback and stress testing.

I also noticed that one of the largest PRs I opened was because I was actively developing a REST API and needed many changes to crow to suit my needs.

This is where help is greatly needed. If you are in charge of a production service and would like to give Crow a shot, or just looking to see if you can replicate an existing service using Crow. Then your questions and your feedback (bugs, suggestions, comments, criticisms) are greatly welcomed and very much appreciated.

On the other hand. If you know how to develop a stress test that can simulate a production environment more than the existing unit tests. Your help in developing one for Crow is vital. Whether it's code (parts of or all of the test implementation) or simply instructions on how we can develop such a test.

While we try our best, we can never catch every bug, every issue, or every way things could be improved. And we really need help from everyone, no matter how small, In order to develop and deliver a package that makes us proud for developing it, and people thankful for its existence.

@The-EDev The-EDev added task Non code related issue help wanted Contributions are requested labels Jun 7, 2021
@InternalHigh
Copy link

Just call it 1.0

@ArthoPacini
Copy link

I never contributed to any project, I'll try to contribute to Crow!

@The-EDev The-EDev added this to the v0.4 (v1.0 possibly) milestone Jul 2, 2021
@The-EDev The-EDev added the further information required existing information is lacking, or feedback is required label Nov 25, 2021
@codeandroid
Copy link

Currently using restinio in production. While looking through Crow I could not identify a way to suspend request processing without blocking the server in order to do other asynchronous work (in our own async thread pool).

To give an example: In restinio, in the handler you spawn the async operation however you want (passing the shared handle to the request object to keep it alive) and return restinio::request_accepted() from the handler. Now the server can immediately continue process other requests. When the async operation is finally done, call req->create_response().set_body("OK").done() to send the response.

Did I miss something? Is this what #258 is about?

@luca-schlecker
Copy link
Collaborator

I think you hit it dead on. At some time, if all the requests are still waiting on asynchronous operations to finish, all available threads will be waiting... I am thinking about how that problem could be approached... I'll put it on my backlog of things to look into (no guarantees though, it could take me a little while to get to this).

@The-EDev
Copy link
Member Author

@codeandroid Thanks a lot for the insight! You are correct in that currently Crow does not allow suspending an operation without blocking the thread, this is partially what #258 is about. Your issue would potentially also relate to #99 (As in the base solution would work towards fixing both issues).

Thanks again for the feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
further information required existing information is lacking, or feedback is required help wanted Contributions are requested task Non code related issue
Projects
None yet
Development

No branches or pull requests

5 participants