docs: service to worker, session facade, sharding diagrams

This commit is contained in:
Ilkka Seppälä
2025-04-10 20:43:16 +03:00
parent 73a582867a
commit e5485dafa9
6 changed files with 12 additions and 0 deletions
+4
View File
@@ -26,6 +26,10 @@ In plain words
> Separates the processing logic from the view in web applications to improve maintainability and scalability.
Sequence diagram
![Service to Worker sequence diagram](./etc/service-to-worker-sequence-diagram.png)
## Programmatic Example of Service to Worker Pattern in Java
The Service to Worker design pattern separates the processing logic from the view in web applications to improve maintainability and scalability. It combines the Dispatcher View and Service Locator patterns to facilitate the separation of processing, control flow, and view management in web applications.
Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

+4
View File
@@ -34,6 +34,10 @@ In plain words
> The Session Facade design pattern is an excellent choice for decoupling complex components of the system that need to be interacting frequently.
Sequence diagram
![Session Facade sequence diagram](./etc/session-facade-sequence-diagram.png)
## Programmatic Example of Session Facade Pattern in Java
The Session Facade design pattern is a structural design pattern that provides a simplified interface to a set of complex subsystems, reducing the complexity for the client. This pattern is particularly useful in situations where the client needs to interact with multiple services or systems but doesnt need to know the internal workings of each service.
Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

+4
View File
@@ -35,6 +35,10 @@ Wikipedia says
>
> There are numerous advantages to the horizontal partitioning approach. Since the tables are divided and distributed into multiple servers, the total number of rows in each table in each database is reduced. This reduces index size, which generally improves search performance. A database shard can be placed on separate hardware, and multiple shards can be placed on multiple machines. This enables a distribution of the database over a large number of machines, greatly improving performance. In addition, if the database shard is based on some real-world segmentation of the data (e.g., European customers v. American customers) then it may be possible to infer the appropriate shard membership easily and automatically, and query only the relevant shard.
Flowchart
![Sharding flowchart](./etc/sharding-flowchart.png)
## Programmatic Example of Sharding Pattern in Java
Sharding is a type of database partitioning that separates very large databases into smaller, faster, more easily managed parts called data shards. The word shard means a small part of a whole. In software architecture, it refers to a horizontal partition in a database or search engine. Each individual partition is referred to as a shard or database shard.
Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB