All authors

Claude Skills by robsonkades
github.com/robsonkades305 skills0 installs424 views
- Lock Free PatternsDesigning and reviewing nonblocking Java algorithms: linearization points, lock-free, wait-free and obstruction-free progress, CAS/RMW loops, success/failure ordering, contention collapse, backoff/helping, ABA/version wrap, node reuse and reclamation, publication, linearizability, starvation and shutdown. For custom implementations or performance claims, compare JDK/library and lock-based alternatives; measure retry and topology effects when relevant. Use when implementing or diagnosing atomi...Votes: 0GitHub stars: 2
- Lock InflationDiagnosing and engineering Java intrinsic-monitor contention across fast and inflated monitor states without freezing one HotSpot release's internals. Covers ownership, recursion, wait sets, entry queues, inflation/deflation, virtual-thread behavior, JFR/thread-dump evidence, threshold/censoring, convoys, fairness, lock graphs, critical-section redesign, partitioning and validation. Use when `synchronized` wait/hold time is suspected; JMM correctness, explicit locks, false sharing and lock-fr...Votes: 0GitHub stars: 2
- Low Latency JvmDesigning and validating JVM systems whose primary objective is bounded jitter rather than low average latency: latency-distribution budgets, allocation strategy, GC choice, warm-up and deoptimization, CPU/NUMA placement, busy-spin cost and evidence for kernel bypass. Use when p99.99-to-p50 spread matters, a trading or real-time path claims to be GC-free, CPUs are isolated, Epsilon or busy waiting is proposed, or an optimization shifts jitter between JVM, OS and network. General tail diagnosi...Votes: 0GitHub stars: 2
- Message Ordering And PartitioningOrdering guarantees and their exact scope/stage: common logs order per partition while a global total order requires a serialized sequencer; per-key ordering depends on key-to-partition mapping remaining stable; why the partition count is nearly a one-way door; what silently breaks order in a consumer or producer; and whether ordering is required at all — version guards, commutative handlers, state-machine guards. Use when a design says messages are processed in order with no scope, when part...Votes: 0GitHub stars: 2
- Metadata MappingExpressing the object-to-schema mapping as metadata rather than hand-written code: where the mapping lives (annotations, external XML, programmatic), what reflection costs versus generated code, and how metadata drifts from the schema it describes. Use when persistence annotations accumulate on a domain class that is supposed to be framework-free, when the same mapping is expressed twice, when a schema change is discovered at runtime instead of at startup, when ddl-auto generates a schema in ...Votes: 0GitHub stars: 2
- Metaspace InternalsMetaspace internals on JDK 16+: chunk and arena allocation per ClassLoaderData, the compressed class space and its separately configured reservation/limit, chunk waste and fragmentation, when memory is actually returned to the OS, and reading `jcmd VM.metaspace` and the nested `VM.native_memory` output. Use when `OutOfMemoryError: Metaspace` or `Compressed class space` is thrown, when a container is OOMKilled with a healthy heap, when metaspace committed grows monotonically, when `MaxMetaspac...Votes: 0GitHub stars: 2
- Metrics And CardinalityDesigning bounded, decision-oriented metrics for Java services: selecting counters, gauges and histogram forms; defining RED, USE and business outcomes; budgeting active series and ingestion/query cost; controlling caller-driven dimensions; and planning schema migrations, overflow behavior and exemplars. Use when adding labels, routes, histograms or business metrics, diagnosing series growth or missing gauges, reviewing Micrometer/Prometheus instrumentation, or choosing between classic/native...Votes: 0GitHub stars: 2
- Mvc And Request HandlingHow a web request is routed and handled: MVC's actual division of responsibilities, Page Controller versus Front Controller, and Application Controller for flows whose next step is a decision. Use when controllers contain business rules or persistence calls, when the same cross-cutting concern is copied into every handler, when a wizard's navigation logic is spread across handlers as if-chains, when a filter, interceptor and handler contend for one concern, when a controller is tested by star...Votes: 0GitHub stars: 2
- Mysql Innodb PerformanceDiagnosing and tuning MySQL 8.4+ InnoDB from engine evidence: clustered primary-key storage, buffer pool and redo/checkpoint pressure, undo/purge history, next-key/gap locks and deadlocks, optimizer statistics and plans, online DDL, replication durability/lag, and Connector/J prepared statements, batching, fetch, and TLS properties. Use when the symptom or change depends on InnoDB or MySQL behavior. Not generic query-plan, ORM, or pool sizing guidance.Votes: 0GitHub stars: 2
- Numa And Cpu AffinityPlacing a JVM on real hardware topology: reading the NUMA topology, numactl and taskset pinning strategies, interpreting numastat, which collectors UseNUMA actually governs, how CPU sets interact with the JVM's own NUMA logic, and deciding between pinning and interleaving. Use when a large heap runs on a multi-socket or NPS2/NPS4 host with no binding at all, when a command uses numactl --cpubind, when UseNUMA is set alongside ZGC or Shenandoah and produced nothing, when perf is asked for a nu...Votes: 0GitHub stars: 2
- Object Layout And FootprintSizing a data structure in bytes before it exists. Use when a shape is chosen for millions of instances — record, class, primitive array, parallel arrays or boxed collection; when an array is proposed to save the header; when HashMap<Integer,Integer> or List<Long> is on a bulk path; when -XX:+UseCompactObjectHeaders is evaluated for footprint; or when smaller objects are expected to buy shorter GC pauses without a collector-specific measurement. Answers in bytes per element; one record-versus...Votes: 0GitHub stars: 2
- Off Heap MemoryMemory outside the Java heap: direct `ByteBuffer` and its Cleaner-driven release, `MemorySegment` and `Arena` in the FFM API, lifetime and thread confinement, when off-heap actually pays, and diagnosing native growth no heap dump explains. Use when RSS grows while the Java heap stays flat, on `OutOfMemoryError: Direct buffer memory` or an OOMKilled container with no Java exception, when `-XX:MaxDirectMemorySize` is unset or copied from another service, when `ByteBuffer.allocateDirect` sits on...Votes: 0GitHub stars: 2
- Offline Concurrency ControlProtecting data from concurrent edits that span more than one transaction: optimistic offline lock, pessimistic offline lock, coarse-grained locking at the aggregate, and implicit locking applied by the framework. Use when two users overwrite each other's edits, when a version column is being added or removed, when OptimisticLockException reaches the user as a stack trace, when a bulk update silently bypasses versioning, when a lock is held across thinking time by a database transaction, when...Votes: 0GitHub stars: 2
- Opentelemetry PerformanceDesigning OpenTelemetry tracing that remains causally useful within an explicit overhead and data-risk budget: auditing automatic/manual coverage, preserving context across asynchronous boundaries, choosing head/tail sampling and collector topology, controlling attributes/baggage, backpressure and export failure, and measuring application plus collector cost. Use when traces fragment, rare tails disappear, Collector memory grows, telemetry drops under incidents, instrumentation duplicates spa...Votes: 0GitHub stars: 2
- Orm Behavioral PatternsThe three runtime behaviours that make object-relational mapping work and produce its most confusing failures: Unit of Work, Identity Map and Lazy Load. Use when an entity was modified but never saved and the change appeared anyway, when a change was expected to persist and did not, when LazyInitializationException appears during serialisation or in a job, when the query count scales with rows displayed, when a persistence context grows until flush becomes slow, when a bulk update is invisibl...Votes: 0GitHub stars: 2
- Orm Fetch And Batching PerformanceMaking JPA and Hibernate stop issuing the statements you did not ask for, and making the ones they do issue cheap: statement amplification, N+1 from an association and from a collection, join fetch versus entity graph versus batch fetching, the cartesian product of independent join-fetched collections, scalar DTO projection trade-offs, and why write batching silently does nothing under identity id generation. Use when the query count scales with rows rendered, when a page issues hundreds of s...Votes: 0GitHub stars: 2
- Orm Structural MappingMapping the structure of an object model onto tables: Identity Field, Foreign Key Mapping, Association Table Mapping, Dependent Mapping, Embedded Value and Serialized LOB. Use when choosing an identifier strategy or when a generated identity breaks batching, when a bidirectional association updates the wrong side and no foreign key is written, when a many-to-many link already has attributes, when child rows are given repositories of their own, when a value type is flattened into columns or hi...Votes: 0GitHub stars: 2
- Pattern Selection And CompositionChoosing enterprise patterns from forces rather than familiarity, and combining them into an architecture whose parts reinforce rather than fight each other: the selection criteria that discriminate, the compositions that work, the pairs that conflict, and the relationship graph. Use when a design is starting and the patterns are about to be chosen by habit, when a pattern name is proposed before the problem is stated, when two chosen patterns produce friction, when a reference architecture i...Votes: 0GitHub stars: 2
- Patterns And Modern FrameworksWhich classical enterprise patterns a modern Java and Spring stack already implements, which it only partly implements, and which it does not implement at all — plus the modern Java expression of each. Use when a repository interface is written over Spring Data, when a unit of work or identity map is built over JPA, when a front controller is hand-rolled, when a caching layer is written over the caching abstraction, when an entity is written as a mutable bean because "JPA requires it", when a...Votes: 0GitHub stars: 2
- Pause AttributionAttributing an observed production pause to a layer: decomposing it across time-to-safepoint, safepoint operation, cleanup and host effects, correlating the GC log, the safepoint log, JFR and OS signals by timestamp, and proving which layer owns the missing milliseconds. Use when application p99 far exceeds what the GC log accounts for, when "Reaching safepoint" is large while "At safepoint" is small, when two profilers disagree about hot paths, when a safepoint-log analyser reports zero even...Votes: 0GitHub stars: 2
- Performance Engineering ProgramEstablishing an organization-wide performance engineering program through measurable maturity evidence, service ownership, SLO and baseline adoption, regression gates, incident learning and a rotating champion model. Use when performance depends on one specialist, teams apply different evidence standards, a maturity assessment needs concrete next actions, or a rollout must turn isolated profiling into a durable operating discipline. Does not design individual SLOs, benchmarks, alerts or profi...Votes: 0GitHub stars: 2
- Performance Incident ResponseCoordinating a production performance incident from impact declaration through evidence-preserving triage, coordinated mitigation, recovery validation and a blameless causal postmortem. Use when a latency, throughput, saturation or resource regression requires a war room; when responders are changing JVM flags before preserving evidence; or when MTTD, mitigation time and recovery time are being conflated. Evidence acquisition belongs to incident-evidence-capture; technical diagnosis to perfor...Votes: 0GitHub stars: 2
- Performance MethodologyThe investigation process for performance work: defining measurable goals, recording a baseline, characterising before diagnosing, falsifiability, fixed-work speedup bounds, experimental design, and validating by mechanism rather than by coincidence. Use when starting a performance investigation, when a fix is credited to a deploy that also restarted the process, when an optimisation is proposed without a measurement, when a benchmark result changes with the duration of the run, when an inves...Votes: 0GitHub stars: 2
- Performance Regression CiDesigning trustworthy performance-regression gates: defining the decision and smallest important regression, preserving independent experimental units, calibrating noise and power, comparing compatible JMH results, handling multiplicity and drift, separating screening from confirmation, and operating secure baseline promotion. Use when performance results should influence merge, when a threshold or statistical test lacks an empirical error budget, when JMH scoreError is treated as a two-build...Votes: 0GitHub stars: 2
- Poison Messages And DlqWhat happens to a message that cannot succeed: separating the permanently poison message that fails on its own content from the transiently blocked one whose dependency is down, and why an attempt counter cannot tell them apart; the dead-letter queue as a design with an owner, an alert and a redrive path; the record captured beside the payload; and the head-of-line decision in a partitioned log, where skipping a record trades a complete effect sequence for progress. Use when a consumer retrie...Votes: 0GitHub stars: 2
- Postgresql PerformanceDiagnosing and tuning PostgreSQL 17/18 from engine evidence: MVCC tuple versions, VACUUM/freeze and bloat, HOT updates and visibility maps, plans and cardinality, work memory/spills, WAL and checkpoints, locks/SSI, connection processes and PgBouncer session semantics, plus pgjdbc prepared-plan, batch, and fetch behavior. Use when the symptom or change depends on PostgreSQL internals. Not generic query-plan, ORM, or HikariCP sizing guidance.Votes: 0GitHub stars: 2
- Project ValhallaEvaluating Project Valhalla value-class proposals and Early-Access builds without presenting draft syntax or flattening heuristics as released Java behavior. Use when code or documentation claims value classes remove identity, guarantee flattened storage, eliminate boxing, change object layout, or are available in a particular JDK; and when designing an experiment for a future migration. Does not replace current object-layout measurement (object-layout-and-footprint), escape-analysis diagnosi...Votes: 0GitHub stars: 2
- Quality GatesChoosing which automated checks a change must pass, and making them cheap enough that they stay switched on: matching the gate set to the change's risk rather than running everything on everything, where each gate belongs (pre-commit, pull request, main, release), the Java toolchain that enforces each class of defect, ratcheting a gate onto a codebase that already violates it, and what to do when a gate goes red. Use when setting up or trimming a pipeline, when the build is slow enough that p...Votes: 0GitHub stars: 2
- Query Objects And SpecificationsExpressing queries as objects that can be composed, named and tested — Query Object, Specification, criteria builders, derived repository methods and explicit SQL — and choosing between them per query rather than adopting one style everywhere. Use when repository interfaces have grown dozens of findByAAndBAndCOrderByD methods, when a search screen with optional filters is being built by concatenating strings, when a Specification chain has become unreadable or produces a query nobody can pred...Votes: 0GitHub stars: 2
- Queueing ModelsChoosing, parameterising and falsifying queueing models: M/M/1, M/M/c, M/G/1, finite/loss and closed networks; Erlang C/B, Pollaczek–Khinchine, Kingman/Allen–Cunneen, variability, queue topology and what model assumptions permit. Use when a predicted wait time disagrees with the measured one, when latency is far worse than utilisation suggests, when service times are bimodal or GC-spiked, when arrivals are retries or cron bursts rather than independent users, when Erlang C must be computed fo...Votes: 0GitHub stars: 2
- Rate Limiting And Load SheddingChoose policy quotas and saturation-based admission: limit identity, charged work, burst and window semantics, distributed budgets, early rejection, fairness, deadlines and recovery. Use when replica-local limits multiply a quota, window-boundary bursts break the contract, rejection amplifies retries, or a service overloads while clients remain within quota. Covers token/leaky buckets, fixed/sliding windows, 429/503 and meaningful Retry-After guidance. Not queue arithmetic (littles-law-and-qu...Votes: 0GitHub stars: 2
- Reactive And Virtual Thread SelectionChoosing between a reactive pipeline and thread-per-request on virtual threads, and deciding where they legitimately coexist: what each model actually gives you, where backpressure comes from in each, memory per in-flight request versus per idle connection, the diagnosability difference, and the framework configuration that decides which model a request runs under. Use when a team proposes migrating away from WebFlux or towards it, when virtual threads are described as making reactive obsolet...Votes: 0GitHub stars: 2
- Reactive BackpressureBackpressure in reactive and asynchronous pipelines: Reactive Streams request semantics, operators that reshape demand, bounded buffers and overflow strategies, blocking inside a non-blocking pipeline, and measuring where demand is actually being throttled. Use when memory grows in proportion to time under load, when a sequence terminates with an unexpected overflow error, when onBackpressureBuffer is used with no size or no BufferOverflowStrategy, when a refactor replaced a Reactor pipeline ...Votes: 0GitHub stars: 2
- Reading Jit AssemblyReading the machine code HotSpot actually emitted: installing hsdis, driving -XX:+PrintAssembly and JMH perfasm, telling the verified entry point and prologue from the method body, and confirming or refuting a hypothesis about an optimisation from the instructions themselves. Use when a claim about an optimisation needs proof at the instruction level, when PrintAssembly prints hex bytes instead of mnemonics, when PrintOptoAssembly on a product JDK unexpectedly prints only banner lines, when t...Votes: 0GitHub stars: 2
- Refactoring AutomationApplying repeatable Java changes with IDE refactoring, OpenRewrite, structural search, compiler tooling or hand edits; checking tool coverage and making large diffs reviewable, reproducible and reversible. Use when one edit spans many files, a framework or library migration must run repo-wide, a rename reaches strings and configuration, regex is proposed for Java source, a generated diff is too large to review line by line, automated refactoring changed behaviour, or a cleanup needs recurrenc...Votes: 0GitHub stars: 2
- Remote Facade And DtoDesigning what crosses a remote boundary: a Remote Facade providing coarse, business-shaped operations, and DTOs carrying the data in one round trip — plus when a DTO earns its mapping cost. Use when an API mirrors the domain model method for method, when a client makes five calls to render one screen, when JPA entities are serialised to clients, when a DTO is a field-for-field copy of an entity, when adding a field means editing seven classes, when internal fields appear in a public payload,...Votes: 0GitHub stars: 2
- Repository PatternThe repository as a collection-like boundary over domain objects, with aggregate-root write boundaries in DDD: what belongs behind it, where queries and read models fit, and when a redundant CRUD wrapper can be removed without losing a useful contract. Use when a repository is being added for a child entity, when a generic or base repository is proposed, when repository methods carry business verbs (cancelExpired, activateEligible), when a managed entity escapes through the repository interfa...Votes: 0GitHub stars: 2
- Requirements And AcceptanceTurning a request into something buildable and checkable before writing code: separating the requirement from the implementation someone already chose, finding the ambiguities that change the work, naming assumptions where they can be contradicted, writing acceptance criteria that a test can be derived from, and surfacing contradictions instead of resolving them silently. Use before implementing a ticket whose edge cases are unstated, when a request names a solution rather than a need, when "...Votes: 0GitHub stars: 2
- Retries And BackoffRetry as a policy with a cost: classifying a failure as transient, permanent or ambiguous before retrying anything; why a timeout is ambiguous and safe to retry only under idempotency or reconciliation; capped jittered backoff; aggregate retry budgets plus per-call limits; one layer owning the end-to-end policy; and honouring 429, Retry-After and the remaining deadline. Use when a catch block retries on Exception or on a message substring, when backoff has no jitter, when several layers each ...Votes: 0GitHub stars: 2
- Rpc And Api ContractsThe contract between two services and how it changes without a coordinated deploy: partial failure as a first-class outcome, an error surface a machine caller can act on (stable extensible codes, outcome certainty, retry conditions, RFC 9457), compatibility in both directions and expand-then-contract, versioning under an explicit compatibility policy, and choosing REST, gRPC or messaging on observable conditions. Use when a client branches on an error message string, when a field is renamed o...Votes: 0GitHub stars: 2
- SafepointsThe HotSpot safepoint mechanism on JDK 25: thread-local polling words and where the JIT emits polls, loop strip mining, global safepoints versus thread-local handshakes, the VM operations other than GC that stop the world, time-to-safepoint versus operation time, and reading `-Xlog:safepoint`. Use when measured p99 or p99.9 is far worse than the GC log explains, when GC logs look clean but latency does not match, when a stop-the-world pause has no GC event behind it, when JNI critical regions...Votes: 0GitHub stars: 2
- Scatter GatherFanning one request out to N workers and combining answers: order-statistic latency, choosing N against tail exposure, all-of-N/first-of-N/k-of-N completion, safe hedging, partial-result completeness and watermarks, deadline propagation, and cancelling losers. Use when a keyless query fans out to every shard, when leaf dashboards are green but user-facing p99 is not, when more leaves made the request slower, when a fan-out gives no way to tell no-data from no-answer, when a hedge is proposed,...Votes: 0GitHub stars: 2
- Schema Evolution And CompatibilityWhether a given schema change is safe, in which deploy order, and what breaks when it is not: the writer/reader pair, the compatibility levels and who upgrades first, the per-format rules for Avro, Protobuf and JSON Schema, registry configuration, and catching a break in CI. Use when AvroTypeException reports a missing required field, when "Can't get the number of an unknown enum value" is thrown, when UnrecognizedPropertyException exposes an unexpected mapper policy, when auto.register.schem...Votes: 0GitHub stars: 2
- Scoped ValuesScopedValue as one-way, immutable, lexically bounded context: where/run/call, rebinding in a nested scope, inheritance by StructuredTaskScope subtasks and by nothing else, and the cases where ThreadLocal is still the right answer. Final in JDK 25 (JEP 506) after four preview rounds, with callWhere and runWhere removed along the way. Use when a ThreadLocal carries per-request context under virtual threads, when context is empty inside a forked subtask or a pool thread, when a ThreadLocal is ne...Votes: 0GitHub stars: 2
- Serialization PerformanceEngineering serialization cost as a system budget across encode/decode CPU, allocation and retention, wire/storage bytes, copies, buffers, compression, schema evolution, compatibility, security, and rollout. Covers format/library selection by workload and contract, streaming versus materialization, buffer ownership/backpressure, representative JMH/component/load experiments, production attribution, and mixed-version failure tests. Use when serialization is measured hot, a new wire/cache/topic...Votes: 0GitHub stars: 2
- Service Layer DesignDesigning the layer that fronts business logic: what an application service owns (transaction boundary, authorisation, orchestration, translation) and what it must not absorb, the difference between application and domain services, and whether the layer is warranted at all. Use when every service method is a single repository call, when a service has become where all rules accumulate, when two services call each other and transactions nest, when authorisation is spread between controller and ...Votes: 0GitHub stars: 2
- Session State StrategiesPlacing the state that spans several requests of one conversation: client session state, server session state and database session state, plus signed tokens and external stores. Use when a multi-step wizard loses its data on the second replica, when HttpSession holds an object graph, when sticky sessions are added to keep an application working, when a rolling deploy logs everyone out, when a JWT carries mutable state or cannot be revoked, when session data is pushed into Redis without decidi...Votes: 0GitHub stars: 2
- Sharding And PartitioningWhether to split data across owners at all, and on which key: what sharding buys — write capacity, locality, data volume and isolation — against distributed transactions/indexes, non-local query routing, rebalancing as standing work, and a shard map that is itself a distributed system; the alternatives and their selection conditions; the shard-key scorecard and classic wrong keys. Use when sharding is proposed for future scale with no measured growth curve, when a table is called too big befo...Votes: 0GitHub stars: 2
- Sidecar PatternComposing a second container into the same pod to add a capability to a container you cannot or will not modify: the shared network namespace and volumes that make this different from a library, native sidecar containers (an init container with restartPolicy Always) and the startup and shutdown ordering they fix, per-container requests against pod-level QoS, and the failure matrix of a two-container pod. Use when a proxy, TLS terminator, config reloader or log shipper is added beside an appli...Votes: 0GitHub stars: 2
- Simd And Vector ApiVectorisation on the JVM: C2 SuperWord auto-vectorisation and the loop shapes that defeat it, the incubating Vector API (species, lanes, masks, loop bound and tail handling), proving that vector instructions were actually emitted, and portability and non-intrinsic fallback risks. Use when someone proposes rewriting a hot loop with jdk.incubator.vector, when a SIMD rewrite produced no measurable gain, when "the Vector API is stable since JDK 21" appears in a PR or design document, when compila...Votes: 0GitHub stars: 2