Springboot Patterns
affaan-m/ECC
Spring Boot architecture patterns, REST API design, layered services, data access, caching, async processing, and logging.
A skill your agent uses when making retried HTTP commands or message processing safe against duplicate effects, including database-backed request keys, payload conflicts and concurrent retries.
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patterns --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .claude/skills/idempotency-patterns && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .claude/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patternsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patterns --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .agents/skills/idempotency-patterns && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .agents/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patterns --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .cursor/skills/idempotency-patterns && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .cursor/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rrezartprebreza/spring-boot-skills.git --path skills/spring-boot-3/idempotency-patterns--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patterns --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .gemini/skills/idempotency-patterns && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .gemini/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patternsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .github/skills/idempotency-patterns && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .github/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rrezartprebreza/spring-boot-skills idempotency-patterns --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rrezartprebreza/spring-boot-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/spring-boot-3/idempotency-patterns .opencode/skills/idempotency-patterns && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "idempotency-patterns" agent skill from https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-3/idempotency-patterns into .opencode/skills/idempotency-patterns/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "idempotency-patterns", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
idempotency-patternsA skill your agent uses when making retried HTTP commands or message processing safe against duplicate effects, including database-backed request keys, payload conflicts and concurrent retries.
Idempotency Patterns is an agent skill from rrezartprebreza/spring-boot-skills. Use when making retried HTTP commands or message processing safe against duplicate effects, including database-backed request keys, payload conflicts and concurrent retries. Do not apply caching as a substitute for business idempotency.
Its SKILL.md is about 1000 tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `agents/openai.yaml`).
It sits in Backend & APIs, covering Backend development and Caching. It works with Spring Boot. The repository describes itself as: Production-grade Claude Code and Codex skills for Spring Boot developers. The licence is MIT.
Read from SKILL.md and the folder at commit f0c06a0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Java), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
postgresql.orgdocs.spring.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Idempotency Patterns loads about 999 tokens when it runs. Until then it costs about 64 tokens; SKILL.md has 478 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from rrezartprebreza/spring-boot-skills at commit f0c06a0, republished under its MIT licence (© rrezartprebreza). 478 words, ~999 tokens.
.claude/skills/idempotency-patterns/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.The examples use Java 17 and Jakarta APIs supported by this Boot version. Keep dependencies managed by the project's Boot BOM.
Identify the authenticated tenant/principal, operation, idempotency key, canonical request hash, retention window and replayable result. Scope uniqueness by principal/tenant and operation; a raw client key must never allow reading another user's result. Authenticate and authorize before both initial execution and replay. Bound key length and stored response size. Document what same-key/different-payload and still-in-progress requests return.
For PostgreSQL, the schema and claim example uses a composite primary key and INSERT ON CONFLICT DO NOTHING RETURNING. In a single database transaction: claim the key, apply the business write, store the resulting status/body/selected headers, then commit. Roll back the claim with the business mutation on failure.
If the insert returns no row, load the existing result in a subsequent statement under READ COMMITTED, compare the canonical hash and replay only when it matches. A concurrent insert waits on the uniqueness constraint; bound lock waits and return a documented retryable outcome on timeout. With snapshot isolation, serialization failures require retrying the whole transaction. Do not catch a unique-constraint violation and continue in an already-aborted transaction.
A result row and business write must use the same transaction manager and database. Return the stored result rather than reconstructing it from mutable current entity state. Keep replay headers allowlisted; do not persist cookies, bearer tokens or hop-by-hop headers.
A database transaction cannot atomically include an HTTP payment or email. Write an outbox record with the business mutation and let a retryable worker perform the external effect using the provider's idempotency support. Reconcile uncertain outcomes before retrying irreversible effects. For messages, record a unique consumer/event pair and apply the projection in one transaction; acknowledge only after commit. Retry failed transactions and route poison messages deliberately.
Define retention from the real client retry window. Deleting a key permits a later repeat to execute again; do not present TTL as an exactly-once guarantee. Protect stored responses as application data and delete them according to the project's retention policy.
Test simultaneous identical requests, conflicting payloads, tenant separation, rollback after claim, response replay after a lost connection and retries following a worker crash. Use the production database engine for lock and isolation tests, not H2 compatibility mode. The bad example illustrates the check-then-act race.
© rrezartprebreza, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files in skills/spring-boot-3/idempotency-patterns of rrezartprebreza/spring-boot-skills.
Open the folder on GitHubat commit f0c06a0
Idempotency Patterns next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Idempotency Patterns this skillrrezartprebreza/spring-boot-skills | 298 | — | ~999 | Automated safety check: Pass | MIT | |
| Springboot Patternsaffaan-m/ECC | 275k | 5 repos | ~2.5k | Automated safety check: Pass | MIT | |
| AWS SDK Java V2 Secrets Managergiuseppe-trisciuoglio/developer-kit | 355 | 1 repos | ~1.5k | Automated safety check: Notes | MIT | |
| 302 Frameworks Spring Boot RESTjabrena/plinth | 446 | 1 repos | ~1k | Automated safety check: Pass | Apache-2.0 | |
| Spring Boot Cachegiuseppe-trisciuoglio/developer-kit | 355 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Unit Test Cachinggiuseppe-trisciuoglio/developer-kit | 355 | — | ~2.9k | Automated safety check: Notes | MIT |
affaan-m/ECC
Spring Boot architecture patterns, REST API design, layered services, data access, caching, async processing, and logging.
giuseppe-trisciuoglio/developer-kit
Provides AWS Secrets Manager patterns for AWS SDK for Java 2.x, including secret retrieval, caching, rotation-aware access, and Spring Boot integration.
jabrena/plinth
A skill your agent uses when you need to design, review, or improve REST APIs with Spring Boot — including HTTP methods, resource URIs, status codes, DTOs, versioning, deprecation and sunset…
giuseppe-trisciuoglio/developer-kit
Provides patterns for implementing Spring Boot caching: configures Redis/Caffeine/EhCache providers with TTL and eviction policies, applies @Cacheable/@CacheEvict/@CachePut annotations, validates…
giuseppe-trisciuoglio/developer-kit
Provides patterns for unit testing Spring Cache annotations (@Cacheable, @CachePut, @CacheEvict).
piomin/claude-ai-spring-boot
Spring Boot 3.x development - REST APIs, JPA, Security, Testing, and Cloud-native patterns.
rrezartprebreza/spring-boot-skills
A skill your agent uses when adding Spring AI-specific model observations, token usage, latency, externally configured cost attribution, advisor telemetry, or protected prompt and completion logging.
rrezartprebreza/spring-boot-skills
A skill your agent uses when adding hypermedia links to REST responses, building self-describing APIs, or implementing Spring HATEOAS.
rrezartprebreza/spring-boot-skills
A skill your agent uses when exposing Spring Boot 3 application capabilities through Model Context Protocol tools, resources, or prompts.
rrezartprebreza/spring-boot-skills
A skill your agent uses when exposing Spring Boot 4 application capabilities through Model Context Protocol tools, resources, or prompts.
rrezartprebreza/spring-boot-skills
A skill your agent uses when the project follows API-first / OpenAPI-first approach: generating controller interfaces, DTOs, and clients from an OpenAPI spec.
rrezartprebreza/spring-boot-skills
A skill your agent uses when generating REST controllers, DTOs, success response contracts, pagination, HTTP status mapping, or API versioning.
Works with
Categories
A skill your agent uses when making retried HTTP commands or message processing safe against duplicate effects, including database-backed request keys, payload conflicts and concurrent retries. Idempotency Patterns is an agent skill from rrezartprebreza/spring-boot-skills. Use when making retried HTTP commands or message processing safe against duplicate effects, including database-backed request keys, payload conflicts and concurrent retries.
Idempotency Patterns fits situations like: making retried HTTP commands; message processing safe against duplicate effects; including database-backed request keys; payload conflicts and concurrent retries.
Run `npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a claude-code`. Or copy the skill folder (skills/spring-boot-3/idempotency-patterns in rrezartprebreza/spring-boot-skills) into .claude/skills/idempotency-patterns in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a codex`. Or copy the skill folder (skills/spring-boot-3/idempotency-patterns in rrezartprebreza/spring-boot-skills) into .agents/skills/idempotency-patterns in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rrezartprebreza/spring-boot-skills --skill idempotency-patterns -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/idempotency-patterns, .gemini/skills/idempotency-patterns, .github/skills/idempotency-patterns and .opencode/skills/idempotency-patterns in your project.
Going by SKILL.md and its folder, Idempotency Patterns needs Java for the scripts in its folder.
SKILL.md names 2 domains. As links in the text: postgresql.org and docs.spring.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Idempotency Patterns is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 999 tokens (SKILL.md is roughly 4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Idempotency Patterns: Springboot Patterns (affaan-m/ECC, 275k stars), AWS SDK Java V2 Secrets Manager (giuseppe-trisciuoglio/developer-kit, 355 stars), 302 Frameworks Spring Boot REST (jabrena/plinth, 446 stars) and Spring Boot Cache (giuseppe-trisciuoglio/developer-kit, 355 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rrezartprebreza (a GitHub user) maintains it in rrezartprebreza/spring-boot-skills, which has 298 GitHub stars. The repository holds 51 skills in this directory. The repository was last updated on September 21, 2026.
Source: rrezartprebreza/spring-boot-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.