iluwatar / iluwatar/java-design-patterns

Blackboard architectural pattern

Open
#64 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

epic: pattern info: help wanted type: feature
Dominant language
Java
Stars
94.7k
Forks
27.4k
Avg merge
3d 4h
Merged PRs (30d)
10

Description

Description:

Implement the Blackboard design pattern in the project. The Blackboard pattern is an architectural pattern used in situations where multiple subsystems need to collaborate to solve a problem that is beyond the individual capabilities or knowledge of each subsystem. The main elements of the Blackboard pattern include:

  • Blackboard: A shared global memory structure that holds the data or state of the solution space. All subsystems read from and write to the blackboard.
  • Knowledge Sources: Independent subsystems or modules that have specialized knowledge and can operate on the data in the blackboard. They can contribute partial solutions or refine existing data.
  • Control Component: Manages the flow of control among the knowledge sources. It determines which knowledge source will get access to the blackboard at any given time based on certain criteria or heuristics.
References:
Acceptance Criteria:
  1. A blackboard component that allows multiple knowledge sources to read and write data.
  2. At least three independent knowledge sources that interact with the blackboard to contribute to or refine the solution.
  3. A control component that manages the interaction between the knowledge sources and ensures orderly access to the blackboard.

For more details on contributing to this project, please refer to our contribution guidelines.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no target files, tests, or entry points. Start with the contribution guidelines and the linked Blackboard references, then inspect existing pattern implementations; done requires a shared blackboard, at least three independent knowledge sources, and a control component coordinating their access.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.