Menempatkan service SOAP dalam arsitektur enterprise modern: melindungi di belakang API gateway dengan rate limit auth dan monitoring, menyalurkan pesan lewat ESB dan message broker seperti WSO2 Apache Camel dan Kafka, serta strategi modernisasi bertahap tanpa memutus integrasi lama.

Setelah di episode 19 kita memetakan kapan memilih SOAP, sekarang kita letakkan service SOAP di dalam arsitektur yang lebih besar: di belakang API gateway dan di tengah aliran ESB / message broker. Service SOAP jarang berdiri sendiri — ia biasanya salah satu node dari jaringan integrasi yang kompleks.
Mengapa penting? Karena gateway dan broker bukan sekadar "pemanis arsitektur" — mereka membawa kapabilitas yang sulit dibangun di setiap service: rate limiting terpusat, autentikasi satu pintu, monitoring lintas service, dan pola integrasi asinkron. Dengan memahaminya, kalian bisa menempatkan SOAP di posisi yang paling sehat dalam enterprise.
API gateway adalah satu pintu masuk yang melindungi semua service — termasuk SOAP. Keuntungan meletakkan SOAP di belakang gateway:
| Kapabilitas | Yang didapat service SOAP |
|---|---|
| Rate limit | Melindungi service dari lonjakan satu mitra |
| Autentikasi terpusat | Validasi token/sebelum request sampai service |
| Monitoring & logging | Observability terpusat lintas semua API |
| Routing | Rute ke versi service (v1/v2) |
| Translasi | JSON→SOAP untuk REST facade (episode 19) |
routes:
- id: soap-bank
uri: http://bank-service:8080/bank
predicates:
- Path=/soap/bank/**
filters:
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 20
redis-rate-limiter.burstCapacity: 40
key-resolver: "#{@mitraKeyResolver}"
metadata:
protocol: soap-1.1Request mitra melewati rate limiter berbasis identitas mitra. Saat batas tercapai, gateway membalas 429 Too Many Requests sebelum request membebani service — persis tema "keadilan antar mitra" dari episode 12, kini terpusat.
Note
Gateway memberi lapisan pertama, tetapi ingat prinsip defense in depth dari episode 16: RBAC di level service harus tetap ada. Gateway yang bobol bukan akhir dunia jika service masih memverifikasi identitasnya sendiri.
Untuk integrasi asinkron dan transformasi kompleks, SOAP masuk ke ESB (Enterprise Service Bus) atau message broker:
Apache Camel adalah framework integrasi yang memakai routing rules — sangat natural untuk memproses pesan SOAP/XML:
from("jetty:http://0.0.0.0:8181/bank")
.process(exchange -> {
// log / transformasi payload SOAP
String body = exchange.getMessage().getBody(String.class);
LOG.info("Request SOAP masuk: {}", body);
})
.to("https://bank-service:8080/bank")
.process(exchange -> {
// tambahkan correlation header untuk response
});WSO2 (ESB open-source) menangani SOAP secara native: proxy services, transformasi dengan XSLT, dan konfigurasi via XML/Data Integration Studio. Cocok untuk organisasi yang ingin ESB terkelola dengan UI.
SOAP over HTTP bersifat sinkron; untuk pola event-driven, pesan SOAP bisa dikirim sebagai event ke Kafka:
Service SOAP -> Produces JSON/XML event ke topic "claims"
Fraud detection -> Consumes event, menganalisis
Reporting -> Consumes event yang sama, tanpa panggil serviceKeuntungan: banyak konsumen membaca event yang sama tanpa blokir; service bisa di-scale dan di-remote secara independen. Detail lengkap ada di series learn-apache-kafka.
Pola praktis: SOAP service yang dulu hanya bisa dipanggil langsung kini di-proxy lewat broker agar konsumen internal memakai transport yang seragam (misal via Kafka atau via REST facade):
Ini langkah pertama modernisasi yang aman (jalan menuju episode 21).
Mengintegrasikan SOAP dengan gateway/ESB adalah setengah jalan menuju modernisasi. Roadmap bertahap yang bisa langsung diterapkan:
| Tahap | Aksi | Dampak |
|---|---|---|
| 1 | Letakkan SOAP di belakang gateway (rate limit, auth, monitoring) | Perlindungan + observability terpusat |
| 2 | Tambah REST facade di gateway untuk konsumen modern | Akses modern tanpa ubah SOAP core |
| 3 | Alihkan konsumen internal ke broker/event-driven | Decoupling dari SOAP sync |
| 4 | Migrasi bertahap service ke REST/gRPC (episode 21) | Lepas dependensi SOAP perlahan |
Tip
Jangan menunggu "momen besar" untuk modernisasi. Setiap lapisan yang kalian tambahkan (gateway, facade, broker) langsung memberi nilai sekaligus menjadi fondasi migrasi di kemudian hari — modernisasi bertahap lebih murah dan lebih aman daripada big-bang rewrite.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membahas modernisasi: SOAP ke REST & migrasi strategis — pola strangler dan parallel run, pemetaan WSDL ke OpenAPI, translator layer, dan cara menjaga backward compatibility tanpa downtime. Sampai jumpa di episode 21!