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

Experimental: Add option to select http4s backend #424

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

peel
Copy link
Contributor

@peel peel commented May 21, 2024

We've recently observed that blaze can have a very different behavioral semantics than ember. Where the latter might be desirable. For that reason it is useful to expose a setting allowing us to enable different backends according to runtime requirements. Currently supported backends: blaze (default), ember, netty, armeria.

This change adds experimental config section. This section is prone to backwards-incompatible change or removal.
If we decide to keep the multiple-backend option, we probably want to reorganize how the backend is selected in HttpService (make HttpService ad-hoc polymorphic).


Part of PDP-1217 PDP-1218 PDP-1219.

peel and others added 2 commits April 10, 2024 09:22
Previously `Content-Type` was not explicitly returned for POST requests.
This would result in errors being logged for javascript tracker in Firefox[1].
Now, the behavior is rolled back to previous where collector would return
`Content-Type` header for these requests.

Addresses [BCPF-1102] and [PDP-1110]

---

1 - https://bugzilla.mozilla.org/show_bug.cgi?id=884693
@peel peel force-pushed the feature/configurable-http4s-backend branch 5 times, most recently from be948dc to a9d8fa3 Compare May 28, 2024 10:03
peel added a commit that referenced this pull request May 28, 2024
We've recently observed that blaze can have a very different behavioral
semantics than ember. Where the latter might be desirable.
For that reason it is useful to expose a setting allowing us to enable
one or the other.

This change adds `experimental` config section. This section is prone to
backwards-incompatible change or removal.
peel added a commit that referenced this pull request May 28, 2024
Previously we supported blaze (default) and ember as http4s backends.
This adds a new - pure Netty backend. Netty is a non-blocking I/O
client-server framework for the network applications.
There are some significant performance and feature differences.
It provides a good control over request handling and underlying low-level
protocol.
peel added a commit that referenced this pull request May 28, 2024
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
@peel peel force-pushed the feature/configurable-http4s-backend branch from a9d8fa3 to e9423d8 Compare May 28, 2024 10:06
peel added a commit that referenced this pull request May 29, 2024
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
@peel peel force-pushed the feature/configurable-http4s-backend branch from 1de2ee4 to 900f5ff Compare May 29, 2024 10:40
peel added a commit that referenced this pull request May 29, 2024
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
@peel peel force-pushed the feature/configurable-http4s-backend branch from 900f5ff to 5b144b4 Compare May 29, 2024 12:18
peel added a commit that referenced this pull request May 29, 2024
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
@peel peel force-pushed the feature/configurable-http4s-backend branch from 5b144b4 to 8905c91 Compare May 29, 2024 12:59
peel added 2 commits May 29, 2024 15:40
We've recently observed that blaze can have a very different behavioral
semantics than ember. Where the latter might be desirable.
For that reason it is useful to expose a setting allowing us to enable
one or the other.

This change adds `experimental` config section. This section is prone to
backwards-incompatible change or removal.
Previously we supported blaze (default) and ember as http4s backends.
This adds a new - pure Netty backend. Netty is a non-blocking I/O
client-server framework for the network applications.
There are some significant performance and feature differences.
It provides a good control over request handling and underlying low-level
protocol.
@peel peel force-pushed the feature/configurable-http4s-backend branch from 8905c91 to b8f14b8 Compare May 29, 2024 13:41
peel added a commit that referenced this pull request May 29, 2024
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
@peel peel force-pushed the feature/configurable-http4s-backend branch 9 times, most recently from 3098180 to 28450cf Compare May 30, 2024 16:04
@peel peel force-pushed the feature/configurable-http4s-backend branch 4 times, most recently from 6a7d2d6 to b0594ff Compare May 31, 2024 07:32
@peel peel marked this pull request as ready for review June 3, 2024 09:45
peel added 3 commits June 3, 2024 12:45
Previously we supported Blaze (default), Ember and Netty. This adds
Ameria backend, that is based upon Netty under the hood.
Ameria has some interesting features, especially GRPC support.
Previously we had issues with enrich fatjars as we never really run them
anywhere in practice. This is a problematic thing to maintain.
This release removes fatjars as a distribution method.
@peel peel force-pushed the feature/configurable-http4s-backend branch from 6f22ddf to 7f1b06a Compare June 3, 2024 10:45
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.

3 participants