gRPC Connector 1.0 Reference
Anypoint Connector for gRPC (gRPC Connector) enables you to connect to the gRPC API.
Configurations
Client
Client configuration for connecting to gRPC services.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Name |
String |
The name for this configuration. Connectors reference the configuration with this name. |
x |
|
Connection |
The connection types to provide to this configuration. |
x |
||
Deadline |
Deadline configuration for gRPC calls. This deadline applies to all operations unless overridden at the operation level. |
|||
Response Wait Time |
Number |
Time to wait for server response after sending each message in client streaming. Overridable at the operation level. A value of 0 means no wait (return immediately with an empty continuation response). |
0 |
|
Response Wait Time Unit |
Enumeration, one of:
|
Time unit for the Response Wait Time field. |
MILLISECONDS |
|
Name |
String |
The identifier of this element used to reference it in other components. |
x |
|
Expiration Policy |
Configures the minimum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. This doesn’t mean that the platform expires the instance at the exact moment that it becomes eligible. Mule purges the instances as appropriate. |
Connection Types
Google Service Account Auth Provider
Use when the gRPC server expects Google-style service account auth (such as Google Cloud).
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Host |
String |
The host address of the gRPC server. |
x |
|
Port |
Number |
The port number of the gRPC server. |
443 |
|
IDL Definition |
One of: |
The Interface Definition Language (IDL) definition for the gRPC service. |
x |
|
Request headers |
Object |
Request headers to include in gRPC requests. |
||
Connection Timeout |
Number |
The timeout for establishing connections to the remote service. |
30 |
|
Connection Timeout Unit |
Enumeration, one of:
|
Time unit for the Connection Timeout field. |
SECONDS |
|
Connection Mode |
One of:
|
Connection mode: TLS (default, for production) or PlainText (for development). If not specified, TLS with default settings is used automatically. |
x |
|
Private key id |
String |
Identifier of the private key for the service account. Part of service credentials. |
x |
|
Client id |
String |
Identifier of the client. Part of service credentials. |
x |
|
Client email |
String |
Client email for the service account. Part of service credentials. |
x |
|
Private key |
One of: |
Private key for the service account. Part of service credentials. Can be provided as text or from a file. |
x |
|
Reconnection |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
No Auth
Use when the gRPC server does not require authentication (such as local or internal services).
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Host |
String |
The host address of the gRPC server. |
x |
|
Port |
Number |
The port number of the gRPC server. |
443 |
|
IDL Definition |
One of: |
The Interface Definition Language (IDL) definition for the gRPC service. |
x |
|
Request headers |
Object |
Custom headers to include in gRPC requests. |
||
Connection Timeout |
Number |
The timeout for establishing connections to the remote service. |
30 |
|
Connection Timeout Unit |
Enumeration, one of:
|
Time unit for the Connection Timeout field. |
SECONDS |
|
Connection Mode |
One of:
|
Connection mode: TLS (default, for production) or PlainText (for development). If not specified, TLS with default settings is used automatically. |
x |
|
Reconnection |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
Oauth Client Credentials
Use when the gRPC server expects OAuth 2.0 client credentials. The connector obtains a token and sends it in the authorization header.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Host |
String |
The host address of the gRPC server. |
x |
|
Port |
Number |
The port number of the gRPC server. |
443 |
|
IDL Definition |
One of: |
The Interface Definition Language (IDL) definition for the gRPC service. |
x |
|
Request headers |
Object |
Custom headers to include in gRPC requests. |
||
Connection Timeout |
Number |
The timeout for establishing connections to the remote service. |
30 |
|
Connection Timeout Unit |
Enumeration, one of:
|
Time unit for the Connection Timeout field. |
SECONDS |
|
Connection Mode |
One of:
|
Connection mode: TLS (default, for production) or PlainText (for development). If not specified, TLS with default settings is used automatically. |
x |
|
Authorization Key |
String |
The header key used for authorization. |
Authorization |
|
Reconnection |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
|||
Client Id |
String |
The OAuth client ID as registered with the service provider. |
x |
|
Client Secret |
String |
The OAuth client secret as registered with the service provider. |
x |
|
Token Url |
String |
The service provider’s token endpoint URL. |
|
|
Scopes |
String |
The OAuth scopes to be requested during the dance. If not provided, it defaults to those in the annotation. |
||
Auth Server Tls Context |
References a TLS config to use to do HTTP request during the OAuth dance. |
|||
Auth Server Proxy Config |
Any |
References the proxy configuration which through the HTTP request during the OAuth dance. |
||
Object Store |
String |
A reference to the object store that should be used to store each resource owner id’s data. If not specified, runtime will automatically provision the default one. |
Associated Sources
GRPC Server Configuration
Server configuration for exposing gRPC methods.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Name |
String |
The name for this configuration. Connectors reference the configuration with this name. |
x |
|
Connection |
The connection to provide to this configuration. |
x |
||
Max Inbound Message Size |
Number |
Maximum size of an inbound message in bytes (default: 4MB, same as gRPC-Java). Must be a positive value. |
4194304 |
|
Name |
String |
The identifier of this element used to reference it in other components. |
x |
Connection Types
Grpc Server
Reference an <http:listener-config> for the gRPC endpoint and provide the protobuf descriptor for your service.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Listener Config |
String |
Reference to the |
x |
|
IDL Definition |
One of: |
Protobuf descriptor definition for the gRPC service. |
x |
|
Reconnection |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
[Client] Bidirectional Stream Message
<grpc:bidirectional-streaming>
Connect to a Bidirectional Streaming RPC. This operation initiates a request, and its responses are collected by the corresponding [Client] Bidirectional Stream Listener. [Client] Bidirectional Stream Message and [Client] Bidirectional Stream Listener are mapped to each other via Routing ID. This operation can be used to initiate the client up-stream, send requests, and also close the client up-stream. Each of these client steps can be mapped using a common request ID.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
The gRPC method name to invoke. |
x |
|
Routing Id |
String |
Identifier to map this call with its corresponding listener. |
||
Request Id |
String |
Identifier to map related client streaming steps. |
||
Content |
Binary |
The request payload to send to the gRPC server. |
||
End Streaming |
Boolean |
Indicates whether to close the client streaming. |
false |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Target Variable |
String |
Name of the variable that stores operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable. |
#[payload] |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Throws
-
GRPC:ABORTED
-
GRPC:ALREADY_EXISTS
-
GRPC:CANCELLED
-
GRPC:CONNECTIVITY
-
GRPC:DATA_LOSS
-
GRPC:DEADLINE_EXCEEDED
-
GRPC:FAILED_PRECONDITION
-
GRPC:GRPC_UNKNOWN
-
GRPC:INTERNAL
-
GRPC:INVALID_ARGUMENT
-
GRPC:NOT_FOUND
-
GRPC:OUT_OF_RANGE
-
GRPC:PERMISSION_DENIED
-
GRPC:RESOURCE_EXHAUSTED
-
GRPC:RETRY_EXHAUSTED
-
GRPC:TRANSFORMATION
-
GRPC:UNAUTHENTICATED
-
GRPC:UNAVAILABLE
-
GRPC:UNIMPLEMENTED
-
GRPC:VALIDATION
[Client] Client Streaming Call
<grpc:client-streaming>
Connect to a Client Streaming RPC. This single operation can be used to initiate streaming, send requests, and close the client streaming request. Each of these steps is correlated via a common request ID.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
The gRPC method name to invoke. |
x |
|
Request Id |
String |
Identifier to map related client streaming steps. |
||
Content |
Binary |
The request payload to send to the gRPC server. |
||
End Streaming |
Boolean |
Indicates whether to close the client streaming. |
false |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Response Wait Time |
Number |
Time to wait for server response after sending each message. Overrides the configuration-level value if specified. |
||
Response Wait Time Unit |
Enumeration, one of:
|
Time unit for the Response Wait Time field. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Target Variable |
String |
Name of the variable that stores operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable. |
#[payload] |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Throws
-
GRPC:ABORTED
-
GRPC:ALREADY_EXISTS
-
GRPC:CANCELLED
-
GRPC:CONNECTIVITY
-
GRPC:DATA_LOSS
-
GRPC:DEADLINE_EXCEEDED
-
GRPC:FAILED_PRECONDITION
-
GRPC:GRPC_UNKNOWN
-
GRPC:INTERNAL
-
GRPC:INVALID_ARGUMENT
-
GRPC:NOT_FOUND
-
GRPC:OUT_OF_RANGE
-
GRPC:PERMISSION_DENIED
-
GRPC:RESOURCE_EXHAUSTED
-
GRPC:RETRY_EXHAUSTED
-
GRPC:TRANSFORMATION
-
GRPC:UNAUTHENTICATED
-
GRPC:UNAVAILABLE
-
GRPC:UNIMPLEMENTED
-
GRPC:VALIDATION
[Client] Server Stream Message
<grpc:server-streaming-call-with-delegation>
Connect to a Server Streaming RPC. This operation initiates a request, and its responses are collected by the corresponding Server Streaming Delegated Listener. The Server Streaming Delegator and Server Streaming Delegated Listener are mapped to each other via the routing ID.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
The gRPC method name to invoke. |
x |
|
Routing Id |
String |
Identifier to map this call with its corresponding listener. |
x |
|
Content |
Binary |
The request payload to send to the gRPC server. |
#[payload] |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Target Variable |
String |
Name of the variable that stores operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable. |
#[payload] |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Throws
-
GRPC:ABORTED
-
GRPC:ALREADY_EXISTS
-
GRPC:CANCELLED
-
GRPC:CONNECTIVITY
-
GRPC:DATA_LOSS
-
GRPC:DEADLINE_EXCEEDED
-
GRPC:FAILED_PRECONDITION
-
GRPC:GRPC_UNKNOWN
-
GRPC:INTERNAL
-
GRPC:INVALID_ARGUMENT
-
GRPC:NOT_FOUND
-
GRPC:OUT_OF_RANGE
-
GRPC:PERMISSION_DENIED
-
GRPC:RESOURCE_EXHAUSTED
-
GRPC:RETRY_EXHAUSTED
-
GRPC:TRANSFORMATION
-
GRPC:UNAUTHENTICATED
-
GRPC:UNAVAILABLE
-
GRPC:UNIMPLEMENTED
-
GRPC:VALIDATION
[Client] Iterate Server Stream Message
<grpc:server-streaming-call-with-response>
Connect to a Server Streaming RPC. This operation returns a StreamedResponseIterable to iterate over server response-stream.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
The gRPC method name to invoke. |
x |
|
Content |
Binary |
The request payload to send to the gRPC server. |
#[payload] |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Output Mime Type |
String |
The mime type of the payload that this operation outputs. |
||
Output Encoding |
String |
The encoding of the payload that this operation outputs. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Target Variable |
String |
Name of the variable that stores operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable. |
#[payload] |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Throws
-
GRPC:ABORTED
-
GRPC:ALREADY_EXISTS
-
GRPC:CANCELLED
-
GRPC:CONNECTIVITY
-
GRPC:DATA_LOSS
-
GRPC:DEADLINE_EXCEEDED
-
GRPC:FAILED_PRECONDITION
-
GRPC:GRPC_UNKNOWN
-
GRPC:INTERNAL
-
GRPC:INVALID_ARGUMENT
-
GRPC:NOT_FOUND
-
GRPC:OUT_OF_RANGE
-
GRPC:PERMISSION_DENIED
-
GRPC:RESOURCE_EXHAUSTED
-
GRPC:RETRY_EXHAUSTED
-
GRPC:TRANSFORMATION
-
GRPC:UNAUTHENTICATED
-
GRPC:UNAVAILABLE
-
GRPC:UNIMPLEMENTED
-
GRPC:VALIDATION
[Client] Unary Message
<grpc:unary-call>
Invokes a standard gRPC method that accepts a single request and returns a single response. Use this operation to perform an individual, one-off gRPC call to a remote service method.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
A String object. |
x |
|
Content |
Binary |
An InputStream object. |
#[payload] |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Target Variable |
String |
Name of the variable that stores operation’s output. |
||
Target Value |
String |
An expression to evaluate against the operation’s output and store the expression outcome in the target variable. |
#[payload] |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
Throws
-
GRPC:ALREADY_EXISTS
-
GRPC:CONNECTIVITY
-
GRPC:DATA_LOSS
-
GRPC:DEADLINE_EXCEEDED
-
GRPC:FAILED_PRECONDITION
-
GRPC:GRPC_UNKNOWN
-
GRPC:INTERNAL
-
GRPC:INVALID_ARGUMENT
-
GRPC:NOT_FOUND
-
GRPC:OUT_OF_RANGE
-
GRPC:PERMISSION_DENIED
-
GRPC:RESOURCE_EXHAUSTED
-
GRPC:RETRY_EXHAUSTED
-
GRPC:TRANSFORMATION
-
GRPC:UNAUTHENTICATED
-
GRPC:UNAVAILABLE
-
GRPC:UNIMPLEMENTED
-
GRPC:VALIDATION
Unauthorize
<grpc:unauthorize>
Deletes all the access token information of a given resource owner ID so that it’s impossible to execute any operation for that user without doing the authorization dance again.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
[Server] End Stream
<grpc:end-stream>
Ends the streaming response.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Attributes |
Streaming attributes from the server streaming source. |
x |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
[Server] Respond Server Stream Message
<grpc:send-stream-message>
Sends a message in a streaming response.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Attributes |
Streaming attributes from the server streaming source. |
x |
||
Stream Message |
Any |
The message content to send to the client. |
#[payload] |
|
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Error Mappings |
Array of Error Mapping |
Set of error mappings. |
[Client] Bidirectional Stream Listener
<grpc:bidi-streaming-listener>
Connects to a Bidirectional Streaming RPC. Server responses from the corresponding [Client] Bidirectional Stream Message are collected here. [Client] Bidirectional Stream Message and [Client] Bidirectional Stream Listener are mapped to each other via Routing ID.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Routing ID |
String |
Identifier to map this listener with its corresponding call. |
x |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
[Client] Server Stream Listener
<grpc:server-streaming-delegated-listener>
Connects to a Server Streaming RPC. Server responses from the corresponding Server Streaming Delegator are collected here. The Server Streaming Delegator and Server Streaming Delegated Listener are mapped to each other via the routing ID.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Routing ID |
String |
Identifier to map this listener with its corresponding delegator. |
x |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
[Client] Server Stream Subscriber
<grpc:server-streaming-subscriber-source>
Connect to a Server Streaming RPC. This source acts as a subscriber by sending the request when it starts. The request is provided at design time through the payload attribute.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method |
String |
The gRPC method name to invoke. |
x |
|
Request Headers |
Object |
Custom headers to include in the gRPC request. |
||
Deadline |
Configures the deadline for this specific gRPC call. Overrides the configuration-level deadline if specified. |
|||
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
File Path |
String |
The path to the file containing the request payload. |
x |
|
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
[Server] Bidirectional Streaming Listener
<grpc:bidirectional-streaming-method>
This source handles multiple client requests and produces multiple server responses.
In bidirectional streaming:
-
The client sends multiple messages (independently).
-
The server sends multiple responses (independently).
-
Both streams operate independently and can send or receive messages at any time.
Flow Execution Model:
-
The flow executes once per client message (automatic iteration; execution might be in parallel for different messages).
-
A shared
streamStatemap (Map<String, Object>) persists across all flow executions for the same stream. -
Each flow execution returns a response as the payload and can update state via
<grpc:response-bidi>. -
When the client completes sending messages, the flow is executed one last time with
clientStreamCompleted=true.
Example Use Cases:
-
Interactive Processing (such as market ticker subscriptions)
-
Client sends subscription requests.
-
Server responds with price updates as they change.
-
-
Client-controlled Streaming (such as paginated data export)
-
Client sends flow control tokens.
-
Server sends data chunks on demand.
-
Example usage in a Mule flow:
<flow name="MarketTicker">
<grpc:bidirectional-streaming-method config-ref="GRPC_Config" methodName="market.Market/SubscribeTickers">
<grpc:response-bidi streamStates="#[vars.updatedStreamStates]"/>
</grpc:bidirectional-streaming-method>
<!-- Calculate response and updated state -->
<ee:transform>
<ee:set-payload>
<!-- Response protobuf message -->
</ee:set-payload>
<ee:variables>
<ee:set-variable variableName="updatedStreamStates">
<![CDATA[
{
subscriberCount: (attributes.streamState.subscriberCount default 0) + 1
}
]]>
</ee:set-variable>
</ee:variables>
</ee:transform>
</flow>
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method Name |
String |
The gRPC method name to invoke. |
x |
|
Output Mime Type |
String |
The mime type of the payload that this source outputs. |
||
Output Encoding |
String |
The encoding of the payload that this source outputs. |
||
On Capacity Overload |
Enumeration, one of:
|
Strategy applied when the flow receives more messages than it has capacity to handle. |
WAIT |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
|||
Stream Output |
Output parameter group for bidirectional streaming responses. |
[Server] Client Stream Listener
<grpc:client-streaming-method>
This source handles multiple client requests and produces a single response. In client streaming, the client sends a stream of requests and the server responds with a single response after processing all the requests.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method Name |
String |
The gRPC method name to invoke. |
x |
|
Output Mime Type |
String |
The mime type of the payload that this source outputs. |
||
Output Encoding |
String |
The encoding of the payload that this source outputs. |
||
On Capacity Overload |
Enumeration, one of:
|
Strategy applied when the flow receives more messages than it has capacity to handle. |
WAIT |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
|||
Output |
Output structure for client streaming methods. |
[Server] Server Stream Listener
<grpc:server-streaming-method>
This source handles a single client request and produces multiple responses.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method Name |
String |
The gRPC method name to invoke. |
x |
|
Max Concurrent Requests |
Number |
If greater than 0, limits concurrent requests for this method (explicit backpressure). |
0 |
|
Output Mime Type |
String |
The mime type of the payload that this source outputs. |
||
Output Encoding |
String |
The encoding of the payload that this source outputs. |
||
On Capacity Overload |
Enumeration, one of:
|
Strategy applied when the flow receives more messages than it has capacity to handle. |
WAIT |
|
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
[Server] Unary Listener
<grpc:unary-method>
This source handles a single client request and produces a single response.
Parameters
| Name | Type | Description | Default Value | Required |
|---|---|---|---|---|
Configuration |
String |
The name of the configuration to use. |
x |
|
Method Name |
String |
The gRPC method name to invoke. |
x |
|
Output Mime Type |
String |
The mime type of the payload that this source outputs. |
||
Output Encoding |
String |
The encoding of the payload that this source outputs. |
||
Primary Node Only |
Boolean |
Whether this source should only be executed on the primary node when running in a cluster. |
||
Config Ref |
ConfigurationProvider |
The name of the configuration to use to execute this component. |
x |
|
Streaming Strategy |
|
Configures how Mule processes streams. Repeatable streams are the default behavior. |
||
Redelivery Policy |
Defines a policy for processing the redelivery of the same message. |
|||
Reconnection Strategy |
A retry strategy in case of connectivity errors. |
|||
Response Unary |
Binary |
The response content to send to the client. |
#[payload] |
Types
Reconnection
Configures a reconnection strategy for an operation.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Fails Deployment |
Boolean |
When the application is deployed, a connectivity test is performed on all connectors. If set to true, deployment fails if the test doesn’t pass after exhausting the associated reconnection strategy. |
||
Reconnection Strategy |
The reconnection strategy to use. |
Reconnect
Configures a standard reconnection strategy, which specifies how often to reconnect and how many reconnection attempts the connector source or operation can make.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Frequency |
Number |
How often in milliseconds to reconnect. |
||
Blocking |
Boolean |
If false, the reconnection strategy will run in a separate, non-blocking thread. |
||
Count |
Number |
How many reconnection attempts to make. |
Reconnect Forever
Configures a forever reconnection strategy by which the connector source or operation attempts to reconnect at a specified frequency for as long as the Mule app runs.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Frequency |
Number |
How often in milliseconds to reconnect. |
||
Blocking |
Boolean |
If false, the reconnection strategy will run in a separate, non-blocking thread. |
TLS
Configures TLS to provide secure communications for the Mule app.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Enabled Protocols |
String |
A comma-separated list of protocols enabled for this context. |
||
Enabled Cipher Suites |
String |
A comma-separated list of cipher suites enabled for this context. |
||
Trust Store |
Configuration for the trust store. |
|||
Key Store |
Configuration for the key store. |
|||
Revocation Check |
Configuration for certificate revocation checking. |
Trust Store
Configures the truststore for TLS.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Path |
String |
The location (which will be resolved relative to the current classpath and file system, if possible) of the trust store. |
||
Password |
String |
The password used to protect the trust store. |
||
Type |
String |
The type of store used. |
||
Algorithm |
String |
The algorithm used by the trust store. |
||
Insecure |
Boolean |
If |
Key Store
Configures the keystore for the TLS protocol. The keystore you generate contains a private key and a public certificate.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Path |
String |
The location (which will be resolved relative to the current classpath and file system, if possible) of the key store. |
||
Type |
String |
The type of store used. |
||
Alias |
String |
When the key store contains many private keys, this attribute indicates the alias of the key that should be used. If not defined, the first key in the file will be used by default. |
||
Key Password |
String |
The password used to protect the private key. |
||
Password |
String |
The password used to protect the key store. |
||
Algorithm |
String |
The algorithm used by the key store. |
Standard Revocation Check
Configures standard revocation checks for TLS certificates.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Only End Entities |
Boolean |
Only verify the last element of the certificate chain. |
||
Prefer Crls |
Boolean |
Try CRL instead of OCSP first. |
||
No Fallback |
Boolean |
Do not use the secondary checking method (the one not selected before). |
||
Soft Fail |
Boolean |
Avoid verification failure when the revocation server can not be reached or is busy. |
Custom OCSP Responder
Configures a custom OCSP responder for certification revocation checks.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Url |
String |
The URL of the OCSP responder. |
||
Cert Alias |
String |
Alias of the signing certificate for the OCSP response (must be in the trust store), if present. |
CRL File
Specifies the location of the certification revocation list (CRL) file.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Path |
String |
The path to the CRL file. |
Deadline
Configures the deadline for gRPC calls. A deadline specifies the maximum duration for a gRPC operation to complete. If the operation exceeds this deadline, it is automatically cancelled.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Duration |
Number |
The duration value for the deadline. |
10 |
|
Units |
Enumeration, one of:
|
The time unit for the Duration field. |
SECONDS |
Expiration Policy
Configures the maximum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Max Idle Time |
Number |
A scalar time value for the maximum amount of time a dynamic configuration instance should be allowed to be idle before it’s considered eligible for expiration. |
||
Time Unit |
Enumeration, one of:
|
A time unit for the Max Idle Time field. |
Server Streaming Attributes
Represents attributes or metadata for streaming operations. This class provides channel and routing information for gRPC streaming calls.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
End Of Stream |
Boolean |
Indicates whether the stream has ended. |
||
Error |
Boolean |
Indicates whether an error occurred during streaming. |
||
Error Message |
String |
The error message if an error occurred. |
||
Request Id |
String |
The request identifier. |
||
Routing Id |
String |
The routing identifier. |
Repeatable In Memory Stream
Configures the in-memory streaming strategy by which the request fails if the data exceeds the MAX buffer size. Always run performance tests to find the optimal buffer size for your specific use case.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Initial Buffer Size |
Number |
The amount of memory that will be allocated to consume the stream and provide random access to it. If the stream contains more data than can be fit into this buffer, then the buffer expands according to the bufferSizeIncrement attribute, with an upper limit of maxInMemorySize. |
||
Buffer Size Increment |
Number |
This is by how much the buffer size expands if it exceeds its initial size. Setting a value of zero or lower means that the buffer should not expand, meaning that a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised when the buffer gets full. |
||
Max Buffer Size |
Number |
The maximum amount of memory to use. If more than that is used then a STREAM_MAXIMUM_SIZE_EXCEEDED error is raised. A value lower than or equal to zero means no limit. |
||
Buffer Unit |
Enumeration, one of:
|
The unit in which all these attributes are expressed. |
Repeatable File Store Stream
Configures the repeatable file-store streaming strategy by which Mule keeps a portion of the stream content in memory. If the stream content is larger than the configured buffer size, Mule backs up the buffer’s content to disk and then clears the memory.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
In Memory Size |
Number |
Defines the maximum memory that the stream should use to keep data in memory. If more than that is consumed content on the disk is buffered. |
||
Buffer Unit |
Enumeration, one of:
|
The unit in which In Memory Size is expressed. |
Redelivery Policy
Configures the redelivery policy for executing requests that generate errors. You can add a redelivery policy to any source in a flow.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Max Redelivery Count |
Number |
The maximum number of times a message can be redelivered and processed unsuccessfully before triggering process-failed-message. |
||
Message Digest Algorithm |
String |
The secure hashing algorithm to use. If not set, the default is SHA-256. |
||
Message Identifier |
Defines which strategy is used to identify the messages. |
|||
Object Store |
ObjectStore |
The object store where the redelivery counter for each message is stored. |
Redelivery Policy Message Identifier
Configures how to identify a redelivered message and how to find out when the message was redelivered.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Use Secure Hash |
Boolean |
Whether to use a secure hash algorithm to identify a redelivered message. |
||
Id Expression |
String |
Defines one or more expressions to use to determine when a message has been redelivered. This property may only be set if useSecureHash is false. |
Error Mapping
Configures the error mapping.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Source |
Enumeration, one of:
|
The source error type to map. |
||
Target |
String |
The target error type to map to. |
x |
Client Streaming Attributes
Represents attributes or metadata for client streaming operations. Returned with every client streaming operation response to indicate the current state of the conversation.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
End Of Stream |
Boolean |
Indicates whether the stream has ended. |
||
Message Sent |
Boolean |
Indicates whether a message was sent in this step. |
||
Request Id |
String |
The request identifier. |
Bidi Streaming Server Attributes
Attributes for bidirectional streaming gRPC methods.
Bidirectional streaming allows both client and server to send multiple messages independently. The client can send multiple requests while the server sends multiple responses.
Key characteristics:
-
Flow executes once per client message (automatic iteration, parallel execution)
-
Flow can send 0, 1, or N responses per message using [Server] Respond Server Stream Message.
-
Shared streamState map persists across all flow executions for state management
-
Final execution with
clientStreamCompleted=truewhen client finishes sending
Use cases:
-
Interactive processing (such as market ticker subscriptions)
-
Client sends subscription requests.
-
Server sends price updates as they change.
-
-
Client-controlled streaming (such as paginated data export)
-
Client sends flow control tokens.
-
Server sends data chunks on demand.
-
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Client Stream Completed |
Boolean |
Whether the client has finished sending (true on final execution). |
||
Connection Id |
String |
Unique stream identifier. |
||
Message Count |
Number |
Total messages received so far. |
||
Message Index |
Number |
Current message number (1-based). |
||
Method Name |
String |
Fully qualified gRPC method name. |
||
Stream State |
Object |
Shared state map across all messages (thread-safe ConcurrentHashMap). |
||
Timestamp |
DateTime |
When the stream is initiated. |
Bidi Streaming Output
Output parameter group for bidirectional streaming responses.
This class captures both the response (body) and the updated streaming state from flow execution. The handler uses this to:
-
Send the response as the gRPC reply.
-
Update its local streamState with the returned values for the next message.
Example usage in a Mule flow:
<grpc:bidirectional-streaming-method methodName="retail.Retail/AddToCart">
<grpc:stream-output streamState="#[vars.updatedStreamState]"/>
</grpc:bidirectional-streaming-method>
<ee:transform>
<ee:set-payload>
<!-- Response protobuf message -->
</ee:set-payload>
<ee:variables>
<ee:set-variable variableName="updatedStreamState">
{
count: (attributes.streamState.count default 0) + payload.qty,
amount: (attributes.streamState.amount default 0.0) + (payload.qty * payload.price)
}
</ee:set-variable>
</ee:variables>
</ee:transform>
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Response |
Binary |
The response message to send to the client. |
#[payload] |
|
Stream State |
Object |
Updated streaming state to persist for the next message. Values set here are available in attributes.streamState for subsequent messages. |
#[{}] |
Client Streaming Server Attributes
Attributes for client streaming gRPC methods. Simplified to match apikit pattern: per-message execution with stream state.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Message Count |
Number |
Number of messages received so far. |
||
Stream Completed |
Boolean |
Whether this is the final message in the stream. When true, the flow should return the final response. |
||
Stream State |
Object |
Shared mutable state across all messages. The flow can read or update this map to maintain aggregated values. |
Client Streaming Output
Output structure for client streaming methods, matching apikit pattern.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Response |
Binary |
The response message to send to the client (only used on final execution when client stream completes). |
#[payload] |
|
Stream State a |
Object |
Updated stream state to persist across messages. Values set here are available as For
|
#[{}] |
Server Streaming Server Attributes
Server-side attributes for server streaming gRPC methods. In server streaming, the client sends a single request, the Mule flow executes, and the server sends multiple responses using [Server] Respond Server Stream Message and [Server] End Stream.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Connection Id |
String |
Unique identifier for this streaming connection (used to route [Server] Respond Server Stream Message and [Server] End Stream). |
||
Method Name |
String |
Fully qualified gRPC method name (for example, |
Single Binary Protobuf
Protobuf contract parameterization. Provides unified access to protobuf descriptors and metadata types for both client operations and server sources through the IdlDefinition interface.
| Field | Type | Description | Default Value | Required |
|---|---|---|---|---|
Protobuf Descriptor File |
String |
The path to the Protocol Buffer descriptor file. |
x |



