Skip to content

[WFLY-15495] Add gRPC to WildFly via a new subsystem.#797

Open
jamezp wants to merge 1 commit intowildfly:mainfrom
jamezp:WFLY-15495
Open

[WFLY-15495] Add gRPC to WildFly via a new subsystem.#797
jamezp wants to merge 1 commit intowildfly:mainfrom
jamezp:WFLY-15495

Conversation

@jamezp
Copy link
Member

@jamezp jamezp commented Feb 5, 2026

@github-actions github-actions bot added the stability-level/default "Default" stability-level label Feb 5, 2026
@jamezp
Copy link
Member Author

jamezp commented Feb 5, 2026

The original analysis doc was #438.

Comment on lines +107 to +112
This is a new feature and subsystem. However, it is **not compatible** with the existing wildfly-extras gRPC feature
pack (https://github.com/wildfly-extras/wildfly-grpc-feature-pack). The new subsystem uses a fundamentally different
architecture:

* **Old feature pack:** Runs a standalone Netty server on a separate port
* **New subsystem:** Integrates with Undertow's HTTP/2 listeners on the default port (8080)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there was a discussion somewhere in Zulip, the existing grpc FP is still in a low stability, so I don't think there is anything that precludes us from rewriting it into implementing this proposal in there. Certainly, this approach has certain benefits (no need to manage another module in WF) and disadvantages (alignment, etc).

Perhaps we can document that decision here too.

Comment on lines +7 to +15
# Provide the GitHub ids of the feature team members, organized by role.
# Provide a single id for the 'assignee' role. Use a YAML list for the 'sme' and
# 'outside-perspective' roles, even if there is only one person in a role.
feature-team:
developer: jamezp
sme:
-
outside-perspective:
-
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for book keeping this section needs people here :-)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I'm awaiting volunteers :)

Comment on lines +29 to +30
separate port. This proposal aims to integrate gRPC as a first-class citizen within the WildFly, allowing gRPC services
to be deployed as CDI beans and served over the existing Undertow HTTP/2 listeners.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the current grpc feature pack we have org.wildfly.extension.grpc.WildFlyGrpcDeploymentRegistry that allows registration of services programatically. Is the plan to no longer support this givne there is only mention of the CDI beans support?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct. The plan is to look for implementations of io.grpc.BindableService and register those. There will be no need to register anything manually.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well, I should clarify. We will still be keeping a registry of these, but we will also be registering these as CDI. At least that is what my current implementation does. We'll see if I need to keep that reference or not.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jamezp The reason I bring this up is because I believe that the current GRPS FP might be doing this in a problematic way, looking here
https://github.com/wildfly-extras/wildfly-grpc-feature-pack/blob/v0.1.16/subsystem/src/main/java/org/wildfly/extension/grpc/deployment/GrpcDeploymentProcessor.java#L55
this is consulting the jandex index, which is problematic as that index will only include the deployment classes, but never any classes provided by the server. The solution for that is to use the WildFlyGrpcDeploymentRegistry programatically.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rhusar I'm not sure we want to provide support for gRPC services outside of the deployment. At least not in this first iteration.

@github-actions github-actions bot added stability-level/default "Default" stability-level and removed stability-level/default "Default" stability-level labels Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stability-level/default "Default" stability-level

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add gPRC support and subsystem to WildFly

2 participants