profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/iluwatar/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.

iluwatar/java-design-patterns 69052

Design patterns implemented in Java

iluwatar/30-seconds-of-java 497

Collection of reusable tested Java 11 compatible code snippets that you can understand in 30 seconds or less.

iluwatar/programming-principles 204

Categorized overview of Programming Principles & Patterns

iluwatar/uml-reverse-mapper 107

Automatically generate class diagram from code. Supports Graphviz, PlantUML and Mermaid output formats.

iluwatar/java-design-patterns-web 71

Java Design Patterns website at https://java-design-patterns.com

vrk-kpa/xroad-joint-development 19

Unmaintained repository. Development moved to: https://github.com/nordic-institute/X-Road-development

nordic-institute/X-Road-development 11

This repository contains X-Road development model description, development practices and guidelines.

aws-samples/aws-best-practices-for-xroad-security-servers 7

Best Practices for Deploying X-Road Security Servers on AWS

vrk-kpa/X-Road 7

Source code of the X-Road software

iluwatar/java-design-patterns-vuepress-web 3

Next-generation website for Java Design Patterns (under construction)

push eventiluwatar/java-design-patterns

allcontributors[bot]

commit sha 3f654ab0c897e222492fc3518eb80a3cc906752f

docs: add AndriyPyzh as a contributor for code (#1804) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

view details

push time in 2 days

PR merged iluwatar/java-design-patterns

docs: add AndriyPyzh as a contributor for code status: under review

Add @AndriyPyzh as a contributor for code.

This was requested by iluwatar in this comment

+11 -1

0 comment

2 changed files

allcontributors[bot]

pr closed time in 2 days

PullRequestReviewEvent

pull request commentiluwatar/java-design-patterns

Added Domain Model pattern

Thank you for the new pattern! @all-contributors please add @AndriyPyzh for code

AndriyPyzh

comment created time in 2 days

push eventiluwatar/java-design-patterns

AndriyPyzh

commit sha eac85678f0888b333fa3e1909a37a04bff353a32

feature: Added Domain Model pattern (#1795) * domain-model pattern * fixed optional get before check isPresent * readme minor changes * change currency representation with joda money * changed names of test methods * fixed code smells * Update domain-model/README.md Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com> * Update domain-model/README.md Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com> * updated readme and diagrams Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com>

view details

push time in 2 days

PR merged iluwatar/java-design-patterns

Added Domain Model pattern status: under review

Domain Model pattern

  • Resolves issue #1294
  • A Domain Model is an object model of the domain that incorporates both behavior and data.

Description

  • Implement domain model pattern
  • corrected main class name in pom.xml of strategy pattern
  • minor update of "Related patterns" in readme file of transaction script pattern
+1765 -8

5 comments

20 changed files

AndriyPyzh

pr closed time in 2 days

PullRequestReviewEvent

Pull request review commentiluwatar/java-design-patterns

Added Domain Model pattern

+---+layout: pattern+title: Domain Model+folder: domain-model+permalink: /patterns/domain-model/+categories: Structural
categories: Architectural
AndriyPyzh

comment created time in 4 days

Pull request review commentiluwatar/java-design-patterns

Added Domain Model pattern

+---+layout: pattern+title: Domain Model+folder: domain-model+permalink: /patterns/domain-model/+categories: Structural+tags:+ - Data access
 - Domain
AndriyPyzh

comment created time in 4 days

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentiluwatar/java-design-patterns

add proactor pattern

I took another look, but it seems that a couple of review comments are still open.

Sea-Sheep

comment created time in 6 days

Pull request review commentiluwatar/java-design-patterns

add proactor pattern

+package com.iluwatar.proactor;+++/**+ * Proactor is a software design pattern for event handling in which+ * long running activities are running in an asynchronous part.+ *+ * <p>This pattern simplifies asynchronous application development+ * by integrating the demultiplexing of completion events and the+ * dispatching of their corresponding event handlers.+ */+public class App {+  /**+   * Execute the pattern.+   *+   * @param args system input+   */+  public static void main(String[] args) throws Exception {+    var operationProcessor = new AsynchronousOperationProcessor();+    var client = new Client();+    client.run(operationProcessor);

I don't see any comments yet

Sea-Sheep

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentiluwatar/java-design-patterns

add proactor pattern

+---+layout: pattern title: Proactor folder: proactor permalink: /patterns/proactor/ categories: Concurrency tags:++- Reactive++---++## Intent++Proactor pattern supports the demultiplexing and dispatching of multiple event handlers, which are triggered by the+completion of asynchronous events. This pattern simplifies asynchronous application development by integrating the+demultiplexing of completion events and the dispatching of their corresponding event handlers.+

I don't see it yet

Sea-Sheep

comment created time in 6 days

PullRequestReviewEvent

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.+FanOut/FanIn service will accept the input params and returns the initial system an ID to acknowledge that the pattern+service has received the requests. Now the caller will not wait or expect the result in the same connection. ++Meanwhile, the pattern service will invoke the requests that have come. The requests might complete at different time. +These requests will be processed in different instances of the same function in different machines or services. As the +requests get completed, a callback service everytime is called that transforms the result into a common format, or a single object 
requests get completed, a callback service is called that transforms the result into a common single object format
karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.+FanOut/FanIn service will accept the input params and returns the initial system an ID to acknowledge that the pattern+service has received the requests. Now the caller will not wait or expect the result in the same connection. ++Meanwhile, the pattern service will invoke the requests that have come. The requests might complete at different time. +These requests will be processed in different instances of the same function in different machines or services. As the +requests get completed, a callback service everytime is called that transforms the result into a common format, or a single object +that gets pushed to a consumer. That caller will be at the other end of the consumer receiving the result.+

Please add a programmatic example in the explanation section. See the other patterns for examples of how to do it.

karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple 
The source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple 
karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.
The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at a different time.
karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.+FanOut/FanIn service will accept the input params and returns the initial system an ID to acknowledge that the pattern+service has received the requests. Now the caller will not wait or expect the result in the same connection. ++Meanwhile, the pattern service will invoke the requests that have come. The requests might complete at different time. +These requests will be processed in different instances of the same function in different machines or services. As the +requests get completed, a callback service everytime is called that transforms the result into a common format, or a single object +that gets pushed to a consumer. That caller will be at the other end of the consumer receiving the result.++## Class diagram+![alt-text](./etc/fanout-fanin.png)++## Applicability++Use this pattern when you can chunk the workload or load into multiple chunks that can be dealt with separately.++## Related patterns++- Aggregator Microservices+- API Gateway

Add links

karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.+FanOut/FanIn service will accept the input params and returns the initial system an ID to acknowledge that the pattern+service has received the requests. Now the caller will not wait or expect the result in the same connection. ++Meanwhile, the pattern service will invoke the requests that have come. The requests might complete at different time. +These requests will be processed in different instances of the same function in different machines or services. As the +requests get completed, a callback service everytime is called that transforms the result into a common format, or a single object +that gets pushed to a consumer. That caller will be at the other end of the consumer receiving the result.++## Class diagram+![alt-text](./etc/fanout-fanin.png)++## Applicability++Use this pattern when you can chunk the workload or load into multiple chunks that can be dealt with separately.
Use this pattern when you can divide the workload into multiple chunks that can be dealt with separately.
karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. +Source will not block itself waiting for the reply. <br> The pattern will run the same function in multiple +services or machines to fetch the data. This is equivalent to invoking the function multiple times on different chunks of data.  ++## Explanation+The FanOut/FanIn service will take in a list of requests and a consumer. Each request might complete at different time.+FanOut/FanIn service will accept the input params and returns the initial system an ID to acknowledge that the pattern+service has received the requests. Now the caller will not wait or expect the result in the same connection. ++Meanwhile, the pattern service will invoke the requests that have come. The requests might complete at different time. +These requests will be processed in different instances of the same function in different machines or services. As the +requests get completed, a callback service everytime is called that transforms the result into a common format, or a single object +that gets pushed to a consumer. That caller will be at the other end of the consumer receiving the result.
that gets pushed to a consumer. The caller will be at the other end of the consumer receiving the result.
karthikbhat13

comment created time in 10 days

Pull request review commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

+---+layout: pattern+title: Fan-Out/Fan-In+folder: fanout-fanin+permalink: /patterns/fanout-fanin/+categories: Integration+language: en+tags:+- Microservices+---++## Intent+The pattern is used when a source system needs to run one or more long-running process that will fetch some data. 
The pattern is used when a source system needs to run one or more long-running processes that will fetch some data. 
karthikbhat13

comment created time in 10 days

PullRequestReviewEvent
PullRequestReviewEvent
GollumEvent

push eventiluwatar/java-design-patterns-web

Ilkka Seppälä

commit sha cc0e1b068583aa70a959a5f9481df5f6ee0a21dc

Update tags.yml

view details

push time in 13 days

push eventiluwatar/java-design-patterns-web

Ilkka Seppälä

commit sha fb1d21e688f6eab6cecb437de27c35829ce3aad7

Update footer.html

view details

push time in 13 days

pull request commentiluwatar/java-design-patterns

Added FanOut/FanIn Pattern

Have raised one more PR with custom branch. #1800

🤷🏻‍♂️

karthikbhat13

comment created time in 13 days