This workshop explores Service Oriented Architecture (SOA) principles for large applications. We focus on how this architecture can address performance bottlenecks (processing, I/O, latency) by designing decoupled, independently scalable services. Participants will explore service decomposition, async communication, data access strategies like replication for data sharing, and operational best practices for high-throughput, low-latency systems.
Details:
Understanding how service separation enables independent scaling, resource optimization, and fault isolation.
Aligning service design with specific performance targets (e.g., throughput, latency).
Discussing strategies for identifying performance critical modules or potential bottlenecks within a larger application.
Using asynchronous mechanisms like message queues (e.g., Kafka) for non-blocking operations and improved responsiveness.
Using data access patterns (e.g., caches, async replication) for faster data access, reducing latency.
Managing data consistency trade-offs in eventually consistent designs.
Using API Gateways (e.g., APISIX) with auth (e.g., Keycloak) for managed, secure service entry points.
Exploring deployment strategies that support independent scaling of services based on load.
Exploring observability (metrics, tracing, logs) for diagnosing performance issues in a distributed environment.
By the end of this workshop, attendees will be able to:
Understand practical Service Oriented Architecture principles specifically aimed at addressing performance bottlenecks in large applications.
Evaluate different communication patterns and data access strategies to reduce latency and improve throughput.
Implementation of supporting infrastructure like API Gateways, auth server, observability, and deployment strategies in building and managing SOA.
Evaluation of the trade offs between the performance benefits of these service patterns and the associated increase in architectural complexity.