Skip to content

Commit d2976b6

Browse files
Add overview of extensibility part 1 (#34694)
* Add overview of extensibility part 1 * Add overview of extensibility part 1 * Add overview of extensibility part 1 * Add overview of extensibility part 1 * Add overview of extensibility part 1
1 parent e750a40 commit d2976b6

File tree

2 files changed

+45
-7
lines changed

2 files changed

+45
-7
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
uid: fundamentals/servers/yarp/extensibility
3+
title: Overview of extensibility
4+
description: Overview of extensibility
5+
author: samsp-msft
6+
ms.author: samsp
7+
ms.date: 2/10/2025
8+
ms.topic: article
9+
content_well_notification: AI-contribution
10+
ai-usage: ai-assisted
11+
---
12+
13+
# Overview of YARP extensibility
14+
15+
* Middleware Pipeline
16+
* Http Forwarder
17+
18+
## Middleware pipeline
19+
20+
YARP uses the concept of [Routes](config-files.md#routes), [Clusters](config-files.md#clusters) and Destinations. These can be supplied through [configuration files](config-files.md) or [directly through code](config-providers.md). Based on the routing rules, YARP picks a cluster and enumerates the possible destinations. It then uses the middleware pipeline to select the destination based on destination health, session affinity, load balancing etc.
21+
22+
![Image](https://github.com/user-attachments/assets/ff17a04f-0c3c-46c7-8ec2-a1ed3dbc948c)
23+
24+
Most of the pre-built pipeline modules can be customized through code. You can also change the pipeline definition to replace modules with your own implementation(s) or add additional modules as needed.
25+
26+
For more information see [Middleware](xref:fundamentals/servers/yarp/middleware).
27+
28+
## Http Forwarder
29+
30+
If the YARP pipeline is too rigid for your needs, or the scale of routing rules and destinations is not suitable for loading into memory, then you can implement your own routing logic and use the HTTP Forwarder to direct requests to your chosen destination. The HttpForwarder component takes the HTTP context and forwards the request to the supplied destination.
31+
32+
![Image](https://github.com/user-attachments/assets/1a060a7e-fa43-49a4-bfad-f95d7d35be63)
33+
34+
The transform component can still be used with the forwarder is needed.
35+
36+
For more information see [Direct forwarding](xref:fundamentals/servers/yarp/direct-forwarding).

aspnetcore/toc.yml

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,7 +1177,7 @@ items:
11771177
items:
11781178
- name: Get started with YARP
11791179
uid: fundamentals/servers/yarp/getting-started
1180-
- name: YARP configuration
1180+
- name: configuration
11811181
items:
11821182
- name: Configuration Files
11831183
uid: fundamentals/servers/yarp/config-files
@@ -1187,7 +1187,7 @@ items:
11871187
uid: fundamentals/servers/yarp/config-filters
11881188
- name: HTTP client configuration
11891189
uid: fundamentals/servers/yarp/http-client-config
1190-
- name: YARP proxy Features
1190+
- name: proxy Features
11911191
items:
11921192
- name: Header Routing
11931193
uid: fundamentals/servers/yarp/header-routing
@@ -1213,7 +1213,7 @@ items:
12131213
uid: fundamentals/servers/yarp/distributed-tracing
12141214
- name: A/B Testing
12151215
uid: fundamentals/servers/yarp/ab-testing
1216-
- name: YARP protocols and guidance
1216+
- name: protocols and guidance
12171217
items:
12181218
- name: Header Guidelines
12191219
uid: fundamentals/servers/yarp/header-guidelines
@@ -1229,21 +1229,23 @@ items:
12291229
uid: fundamentals/servers/yarp/lets-encrypt
12301230
- name: WebSockets and SPDY
12311231
uid: fundamentals/servers/yarp/websockets
1232-
- name: YARP extensibility
1233-
items:
1232+
- name: extensibility
1233+
items:
1234+
- name: Extensibility
1235+
uid: fundamentals/servers/yarp/extensibility
12341236
- name: Middleware
12351237
uid: fundamentals/servers/yarp/middleware
12361238
- name: Direct Forwarding
12371239
uid: fundamentals/servers/yarp/direct-forwarding
12381240
- name: Destination Resolvers
12391241
uid: fundamentals/servers/yarp/destination-resolvers
1240-
- name: YARP deployment options
1242+
- name: deployment options
12411243
items:
12421244
- name: Http.sys Delegation
12431245
uid: fundamentals/servers/yarp/httpsys-delegation
12441246
- name: Service Fabric Integration
12451247
uid: fundamentals/servers/yarp/service-fabric-int
1246-
- name: YARP Troubleshooting
1248+
- name: Troubleshooting
12471249
items:
12481250
- name: Diagnosing proxy issues
12491251
uid: fundamentals/servers/yarp/diagnosing-yarp-issues

0 commit comments

Comments
 (0)