WSO2 ESB PASS-
THROUGH TRANSPORT
By Chanaka Fernando
WHAT IS PASS-THROUGH
TRANSPORT (PTT)?
The non-blocking HTTP transport of WSO2 ESB
which makes the world’s fastest open source ESB
WHY PTT FOR ESB?
!
Ultra-fast, low latency mediation of HTTP requests.
Supporting a very large number of inbound (client-ESB)
and outbound (ESB-server) connections concurrently (we
were looking at several thousand concurrent connections).
Automatic throttling and graceful performance
degradation in the presence of slow or faulty clients and
servers.
WHY NOT NHTTP?
Use dual-buffer model
Message getting build for every request
Overhead of moving data from one buffer to other
HOW PTT DO IT?
use single shared buffer
content aware message processing
CONTENT-AWARENESS
content-unaware mediators (eg: drop, send)
content-aware mediators (eg: xslt)
conditionally content-aware mediators (eg: log)
axiom engaged only necessary
PARSING MESSAGES
If content-aware then engage axiom
use second buffer when message is built
when rampart engaged, special handler checks before
parsing
HIGH LEVEL
ARCHITECTURE
HIGH LEVEL
ARCHITECTURE
Client request comes through Http-Core towards
SourceHandler
Produces data to the pipe (through decoder) and
TargetHandler consumes data
If content-aware, create a secondary buffer and
TargetHandler consumes data from that buffer
STATE MACHINE OF PTT
Request
Response
STATE MACHINE OF PTT
message is divided into HEADER and BODY
when client connects goes to REQUEST_READY
start receiving data, reads the header and goes to
REQUEST_HEAD
reads the message body and goes to REQUEST_BODY
when finishes reading, goes to REQUEST_DONE
WHERE IS PTT?
REFERENCES
http://techfeast-hiranya.blogspot.com/2013/02/
how-worlds-fastest-esb-was-made.html
http://shafreenanfar.blogspot.com/2014/02/wso2-
esb-passthrough-transport-basics.html

Introduction to WSO2 ESB Pass-Through Transport