mcpbeat Sign in

123 Java Design Patterns Agent Skill

Use when you need to select, review, or implement Java design and integration patterns — including classic Java design patterns, REST API patterns, Kafka and event-driven patterns, database and persistence patterns, and cross-cutting integration patterns. This should trigger for requests such as Apply Java design patterns; Review REST API patterns; Design Kafka event-driven patterns; Improve database persistence patterns; Add resilient integration patterns. Part of Plinth Toolkit

14k tokens
context cost
the whole folder, loaded on every use
6
files
instructions only
0
copies elsewhere
how many repositories repackaged it
423
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/jabrena/plinth --skill 123-java-design-patterns

The instruction itself

5 sections, as written by the author

Java Design and Integration Patterns

Guide Java developers in selecting patterns by problem signal, implementation context, and trade-off rather than by pattern name alone.

What is covered in this Skill?

  • Classic Java design patterns for application code: creational, structural, and behavioral patterns
  • REST API patterns for resource design, contracts, idempotency, versioning, and error handling
  • Kafka and event-driven patterns for event schemas, partitioning, idempotency, retries, outbox, and sagas
  • Database and persistence patterns for repositories, transactions, aggregates, locking, migrations, and read models
  • Cross-cutting integration patterns for anti-corruption layers, resilience, observability, and reliable message boundaries

Scope: Use this skill to explain, review, and implement practical patterns in Java systems. Prefer simple code first; introduce a pattern only when it reduces real complexity, protects a boundary, improves testability, or makes change safer.

Constraints

Pattern guidance must be problem-led, concrete, and safe to apply in Java projects.

  • PROBLEM FIRST: Identify the design pressure before naming or applying a pattern
  • NO PATTERN SHOPPING: Do not add abstractions only because a pattern exists; prefer simple code when variation is not present
  • BUILD SAFETY: For code changes, run ./mvnw compile or mvn compile before refactoring and ./mvnw clean verify or mvn clean verify after changes
  • REFERENCE SELECTION: Read the relevant reference before acting: Java code patterns, REST API patterns, Kafka/event-driven patterns, database/persistence patterns, or cross-cutting integration patterns
  • TRADE-OFFS REQUIRED: Explain the benefit, cost, and when-not-to-use guidance for any recommended pattern

When to use this skill

  • Apply Java design patterns
  • Review Java code for design patterns
  • Choose REST API patterns
  • Design Kafka event-driven patterns
  • Improve database persistence patterns
  • Add resilient integration patterns

Workflow

  • Identify the design pressure

Clarify the concrete problem: object creation, behavior variation, API contract evolution, event delivery, persistence consistency, integration reliability, or another recurring design force.

  • Select the relevant reference

Read only the matching reference(s): references/123-java-design-patterns.md, references/123-rest-api-patterns.md, references/123-kafka-event-driven-patterns.md, references/123-database-persistence-patterns.md, or references/123-cross-cutting-integration-patterns.md.

  • Recommend the smallest useful pattern

Choose the simplest pattern that addresses the design pressure. Show how it changes responsibilities, boundaries, tests, operations, or evolution safety.

  • Implement or document the pattern

When code changes are requested, make focused Java or configuration changes following the project conventions. When design advice is requested, provide diagrams, examples, request/response shapes, event shapes, or transaction flows as appropriate.

  • Validate the outcome

Verify that the resulting design remains understandable, testable, and operationally safe. Run the project build for code changes and name any remaining trade-offs.

Reference

For detailed guidance, examples, and constraints, see:

  • references/123-java-design-patterns.md
  • references/123-rest-api-patterns.md
  • references/123-kafka-event-driven-patterns.md
  • references/123-database-persistence-patterns.md
  • references/123-cross-cutting-integration-patterns.md

Other skills for the same job

different authors, same section of the catalogue
Bioservices
by christophacham
×3

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

26k tokens scripts
Geopandas
by christophacham
×3

Python library for working with geospatial vector data including shapefiles, GeoJSON, and GeoPackage files. Use when working with geographic data for spatial analysis, geometric operations, coordinate transformations, spatial joins, overlay operations, choropleth mapping, or any task involving reading/writing/analyzing vector geographic data. Supports PostGIS databases, interactive maps, and integration with matplotlib/folium/cartopy. Use for tasks like buffer analysis, spatial joins between datasets, dissolving boundaries, clipping data, calculating areas/distances, reprojecting coordinate systems, creating maps, or converting between spatial file formats.

8k tokens
Gget
by christophacham
×3

Fast CLI/Python queries to 20+ bioinformatics databases. Use for quick lookups: gene info, BLAST searches, AlphaFold structures, enrichment analysis. Best for interactive exploration, simple queries. For batch processing or advanced BLAST use biopython; for multi-database Python workflows use bioservices.

25k tokens scripts
Uniprot Database
by christophacham
×3

Direct REST API access to UniProt. Protein searches, FASTA retrieval, ID mapping, Swiss-Prot/TrEMBL. For Python workflows with multiple databases, prefer bioservices (unified interface to 40+ services). Use this for direct HTTP/REST work or UniProt-specific control.

12k tokens scripts
Uniprot Database
by ComeOnOliver
×3

Direct REST API access to UniProt. Protein searches, FASTA retrieval, ID mapping, Swiss-Prot/TrEMBL. For Python workflows with multiple databases, prefer bioservices (unified interface to 40+ services). Use this for direct HTTP/REST work or UniProt-specific control.

15k tokens scripts
Bullmq Specialist
by ComeOnOliver
×2

BullMQ expert for Redis-backed job queues, background processing, and reliable async execution in Node.js/TypeScript applications. Use when: bullmq, bull queue, redis queue, background job, job queue.

2k tokens
Moodle External API Development
by ComeOnOliver
×2

Create custom external web service APIs for Moodle LMS. Use when implementing web services for course management, user tracking, quiz operations, or custom plugin functionality. Covers parameter validation, database operations, error handling, service registration, and Moodle coding standards.

9k tokens
Geopandas
by ComeOnOliver
×2

Python library for working with geospatial vector data including shapefiles, GeoJSON, and GeoPackage files. Use when working with geographic data for spatial analysis, geometric operations, coordinate transformations, spatial joins, overlay operations, choropleth mapping, or any task involving reading/writing/analyzing vector geographic data. Supports PostGIS databases, interactive maps, and integration with matplotlib/folium/cartopy. Use for tasks like buffer analysis, spatial joins between datasets, dissolving boundaries, clipping data, calculating areas/distances, reprojecting coordinate systems, creating maps, or converting between spatial file formats.

16k tokens

How to use it

Copy the folder

Take jabrena/123-java-design-patterns from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.