From fdd07c772c050918e1ef0de7d73583f35bea5ba2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Wed, 9 Apr 2025 21:32:41 +0300 Subject: [PATCH] docs: partial response and pipeline diagrams --- partial-response/README.md | 4 ++++ .../etc/partial-response-sequence-diagram.png | Bin 0 -> 52311 bytes pipeline/README.md | 4 ++++ pipeline/etc/pipeline-flowchart.png | Bin 0 -> 31261 bytes 4 files changed, 8 insertions(+) create mode 100644 partial-response/etc/partial-response-sequence-diagram.png create mode 100644 pipeline/etc/pipeline-flowchart.png diff --git a/partial-response/README.md b/partial-response/README.md index a3704a4c3..f4161443f 100644 --- a/partial-response/README.md +++ b/partial-response/README.md @@ -33,6 +33,10 @@ In plain words > The Partial Response design pattern allows a system to send portions of data to the client as they become available, enabling the client to start processing the data before the complete response is received. +Sequence diagram + +![Partial Response sequence diagram](./etc/partial-response-sequence-diagram.png) + ## Programmatic Example of Partial Response Pattern in Java The Partial Response design pattern allows clients to specify which fields of a resource they need. This pattern is useful for reducing the amount of data transferred over the network and allowing clients to start processing data sooner. diff --git a/partial-response/etc/partial-response-sequence-diagram.png b/partial-response/etc/partial-response-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..ac2f550154efd7678d7e660e8d21a9719ff86723 GIT binary patch literal 52311 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 UrcRSe65vl=S?f`$; In software engineering, a pipeline consists of a chain of processing elements (processes, threads, coroutines, functions, etc.), arranged so that the output of each element is the input of the next; the name is by analogy to a physical pipeline. +Flowchart + +![Pipeline flowchart](./etc/pipeline-flowchart.png) + ## Programmatic Example of Pipeline Pattern in Java Let's create a string processing pipeline example. The stages of our pipeline are called `Handler`s. diff --git a/pipeline/etc/pipeline-flowchart.png b/pipeline/etc/pipeline-flowchart.png new file mode 100644 index 0000000000000000000000000000000000000000..48a5cf513b21ddde23a4689259e9aabec57444e1 GIT binary patch literal 31261 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