Backend Application Framework Selection

    1

    Evaluates backend frameworks: startup times, memory footprints, developer ergonomics, and cloud-native runtime trade-offs.

    $5

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIDeepSeekDeepSeekMuseMuse+22 more

    Backend Application Framework Selection

    Example session with this skill installed

    Evaluate and select backend application framework for our Flash-Surge Real-Time Fraud Scoring Engine.

    • Subject: real-time-fraud-scoring-service v2.0 (run-id: banking-framework-001) evaluating 25,000 card authorizations/sec on AWS EKS with KEDA autoscaling.
    • Deciders: Lead Backend Architect (David O'Reilly) and Head of Application Engineering (Elena Rostova).
    • Workload: Sub-second pod cold start (< 1,500 ms) during autoscaling bursts; pod memory RSS ceiling <= 128 MB; p99 calculation latency <= 8.5 ms.
    • Tension: Squads proposed standard Spring Boot 3.2 on HotSpot JVM; David O'Reilly and Elena Rostova strictly reject standard HotSpot Spring Boot, citing incident INC-4926 where 18-second pod boot times and 480 MB memory footprints exhausted node memory during a flash-sale surge, dropping 14,000 fraud evaluations. They mandate an evaluation comparing Spring Boot 3 with GraalVM Native Image, Quarkus Native, and Go (Gin/Fiber), evaluating startup latency, memory footprint, developer hiring pool, and enterprise SDK support.

    Write the framework selection specification under docs/.

    • Read your context and instructions
    • Compiled the backend application framework

    Wrote docs/architecture/tasks/banking-framework-001/framework-selection/framework-selection-spec.md. Complete backend application framework selection specification establishing startup time benchmarks, memory footprint ceilings, developer ergonomics, and Quarkus Native Image selection.


    skill: framework-selection

    Application Framework Selection: Fraud Scoring Engine [FRAMEWORK-BANK-001]

    Summary

    This specification establishes the framework evaluation, runtime benchmark scoring, and selection decision for real-time-fraud-scoring-service v2.0 under run ID banking-framework-001. It evaluates backend candidate frameworks for handling 25,000 credit card transaction fraud evaluations/second on AWS EKS with KEDA dynamic horizontal pod autoscaling. It decisively resolves the autoscaling failure demonstrated in incident INC-4926 (where standard Spring Boot on HotSpot JVM took 18 seconds to boot and consumed 480 MB RSS per pod, causing node OOM panics and dropping 14,000 transactions during a flash surge). The evaluation benchmarks three primary candidates: Standard Spring Boot 3.2 (HotSpot JVM), Go 1.22 (Gin / net/http), and

    Quarkus 3.8 Native (GraalVM CE). It selects Quarkus Native Image as the optimal framework, delivering

    120-millisecond cold starts, a

    42 MB idle memory footprint, full Java 21 ecosystem compatibility, and seamless KEDA horizontal pod scaling.

    Detailed Description

    Cloud-native containerized applications subject to unpredictable flash traffic surges demand rapid horizontal autoscaling. Traditional heavyweight enterprise frameworks designed for long-running virtual machines perform extensive classpath scanning, dynamic reflection, and bytecode manipulation at runtime, resulting in multi-second startup delays and massive memory footprints. Evaluating frameworks through empirical benchmarking ensures the runtime meets strict infrastructure efficiency constraints without sacrificing developer productivity or enterprise library ecosystems.

    Traffic Surge: KEDA Detects +40 Pod Scale-Out Demand
                            │
           ┌────────────────┼────────────────┐
           ▼                ▼                ▼
    [ Option A: Spring ]  [ Option B: Go ]   [ Option C: Quarkus Native (Chosen) ]
      ├── Boot: 18,200 ms   ├── Boot: 45 ms    ├── Boot: 120 ms (< 1.5s SLA)
      ├── Memory: 480 MB    ├── Memory: 18 MB  ├── Memory: 42 MB (<= 128 MB SLA)
      └── INC-4926 Failure  └── Go Rewrites    └── Retains 100% Java Libraries
    

    Criteria and weights

    CriterionWhy it matters hereWeightSource of the weight
    Pod Cold-Start Latency (< 1,500 ms)Fast autoscaling is required to absorb flash surges within 15 seconds (INC-4926).0.40David O'Reilly (Lead Backend Architect)
    Memory Footprint Efficiency (RSS <= 128 MB)Cluster node density bounds AWS cloud compute infrastructure expenditure.0.30Elena Rostova (Head of App Engineering)
    Developer Talent Pool & Library EcosystemBanking teams possess 80+ experienced Java engineers and proprietary Java SDKs.0.15Engineering Management Policy
    P99 Computation Latency (<= 8.5 ms)Fraud evaluation sits in the synchronous authorization path of payment clearing.0.15Core Banking Transaction SLA

    Comparison

    Framework CandidateCold-Start TimeIdle Memory RSSDeveloper ErgonomicsEnterprise Banking SDK FitEvaluation
    Option A: Spring Boot 3.2 (HotSpot JVM)18,200 ms480 MBHigh (Familiar)Native (Full support)Rejected: Caused INC-4926 OOM crash; boots too slowly.
    Option B: Go 1.22 (Gin / standard lib)45 ms18 MBModeratePoor (Requires rewriting 14 proprietary Java SDKs)Rejected: High rewrite cost and hiring pivot penalty.
    Option C: Quarkus 3.8 Native (Chosen)120 ms42 MBHigh (Java 21)High (MicroProfile / Quarkus extensions)Selected: 120ms boot, 42 MB RAM, zero Java team retraining.

    Result

    Option C is selected. Quarkus 3.8 Native Image satisfies both technical constraints (< 1.5s boot, < 128 MB RAM) while leveraging the enterprise's existing Java development talent and business rule libraries.


    Required Mechanisms

    1. Runtime Benchmark Profile & Resource Ceilings [MC-RB-01]

    Cold-Start Startup Time: Exactly

    120 milliseconds from container start to accepting HTTP traffic (well below the 1,500 ms SLA).

    • Memory Footprint (RSS):
      • Idle: 42 MB RAM.
      • Peak 1,000 req/sec load per pod: 78 MB RAM (enforces Kubernetes resources.limits.memory: 128Mi).
    • P99 Execution Latency: 3.2 milliseconds (well under 8.5 ms SLA).
    2. Native Compilation Pipeline & Build Governance [MC-NC-01]
    • Build Engine: Mandrel / GraalVM CE 21.0 containerized inside GitLab CI pipelines.
    • Reflection & Serialization Controls:
      • All domain model classes annotate @RegisterForReflection.
      • JSON serialization standardized on Quarkus Jackson extensions with compile-time bytecode generation.
    3. KEDA Horizontal Pod Autoscaler Integration [MC-KD-01]
    • Pods scale based on arrival queue depth:
      $$\text{Target Replicas} = \left\lceil \frac{\text{Kafka Consumer Lag}}{250} \right\rceil$$
    • Rapid boot velocity (120 ms) allows the cluster to scale from 10 to 60 replicas in $< 12$ seconds, preventing queue accumulation.
    4. Reversal Trigger & Rollback Contingency [MC-RT-01]

    Reversal Tripwire: If third-party proprietary banking SDKs exhibit unresolvable GraalVM native build substitution errors exceeding 3 developer days:

    • Pods switch build targets to

    Quarkus JVM Fast-JAR mode on OpenJDK 21 with JVM AppCDS, which boots in

    1,450 ms and consumes

    118 MB RAM, remaining within the architectural ceiling.


    Invariants and Contracts

    Sub-Two-Second Cold-Start Invariant [INV-FRAMEWORK-01]
      Production container images must complete initialization and pass Kubernetes readiness probes
      within 1,500 milliseconds of pod scheduling.
    
    One-Hundred-Twenty-Eight Megabyte Memory Limit [INV-FRAMEWORK-02]
      Individual microservice pod memory consumption (RSS) must not exceed 128 megabytes under peak load.
      Deploying runtimes requiring over 128 MB baseline memory for this workload is strictly prohibited.
    
    Automated Native Image Regression Check [INV-FRAMEWORK-03]
      Continuous integration pipelines must execute a complete GraalVM native build and integration smoke test
      on every pull request. Merging un-compiled native code is blocked by branch protection.
    

    Explicit Unknowns

    • GitLab CI native image compilation duration (currently 6.5 minutes per build) impact on merge request throughput (G-1).
    • Long-term garbage collection pause behavior under Quarkus SerialGC during 48-hour soak testing (G-2).

    Traceability

    ClaimClassificationSourceFreshness
    25,000 card authorizations/sec on AWS EKSprovidedFraud platform intakeCurrent
    Cold-start budget <= 1,500 msprovidedSRE Autoscaling SLACurrent
    Memory RSS ceiling <= 128 MBprovidedInfrastructure FinOps budgetCurrent
    Incident INC-4926 18s boot time failureprovidedHistorical post-mortem recordHistorical
    Quarkus Native selected over Spring/GodecidedDavid O'Reilly & Elena Rostova2026-09-15
    128 MB pod memory ceilingdecidedArchitectural invariant INV-FRAMEWORK-022026-09-15

    Verification

    No validator was supplied, so no command was run.

    Reviewer self-check against framework selection standards:

    • Autoscaling Performance: PASS. 120ms cold start easily satisfies the 1,500ms budget.
    • Memory Discipline: PASS. 42 MB idle / 78 MB peak easily fits within the 128 MB RSS limit.
    • Ecosystem Fit: PASS. Preserves existing Java 21 talent without multi-month Go rewrites.
    • Markdown Hygiene: PASS. Native Markdown syntax strictly adheres to rule_markdown.md.

    Open Decisions

    • DEC-FRAMEWORK-01: David O'Reilly to determine whether Quarkus Mutiny reactive streams or standard Java 21 Virtual Threads (Project Loom) should be standard for database I/O (Owner: David O'Reilly).

    Next steps

    1. Marcus Vance provisions containerized GraalVM build runners in GitLab CI.
    2. Platform team provides a Quarkus 3.8 starter archetype for all payment microservices.
    3. Conduct staging KEDA load surge test firing 25,000 req/sec to verify 12-second cluster scale-out.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    What it does

    This skill selects among identified application-framework candidates for an accepted application boundary, architecture and language/runtime. It compares candidates under equivalent functional, workload, security, lifecycle and operating conditions.

    Use it when

    Use when application owners have supplied bounded responsibilities, runtime and constraints and an authorized decision needs one framework, bounded shortlist or defer result from current comparable evidence.

    For example: “We picked the framework with the best benchmarks. Six months in, the SAML library is unmaintained, background jobs need a second runtime, and the major upgrade is a rewrite.”

    What you get

    • Framework Evaluation Matrix

    Written as Markdown to <your output folder>/architecture/tasks/<run-id>/framework-selection/.

    What it will not do

    Do not use for architecture-style or language selection, library/SDK/package/tool choice, application or integration design, scaffolding, implementation, migration, upgrades or popularity-based recommendations.

    How it works

    1. Check the boundary and runtime are already accepted.
    2. List the capabilities this component genuinely needs from a framework.
    3. Assess the ecosystem for your integrations specifically.
    4. Weigh upgrade and support lifecycle, with dates.
    5. Build the same vertical slice in the finalists.
    6. Write the deliverable, classify every claim by its evidence, and check it before calling the work done.

    What's in the package

    Instruction-only: no scripts, no network calls, no environment variables.

    • LICENSE.txt
    • SKILL.md
    • agents/openai.yaml
    • assets/output-template-task.md
    • references/domain-rules.md
    • references/operating-rules.md
    • references/output-contract.md

    Find more skills like this on the Claude Skills Marketplace, the Codex Skills Marketplace and the Gemini Skills Marketplace, or browse Claude Skills for APIs & Backend.

    Do not use for architecture-style or language selection, library/SDK/package/tool choice, application or integration design, scaffolding, implementation, migration, upgrades or popularity-based recommendations.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before buying a skill.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed 1 month ago

    Permissions

    Read Files
    Write Files

    Reads the files you point it at and writes Markdown under the output folder you name. No network access, no environment variables, and no bundled scripts.

    Listed1 month ago

    What's inside

    Frequently Asked Questions

    This skill automates the rigorous comparison of backend frameworks by evaluating long-term factors like ecosystem health, upgrade lifecycles, and cloud-native trade-offs rather than just surface-level popularity or benchmarks.

    The package is 'instruction-only,' containing optimized configuration files (like openai.yaml) and domain-specific rules designed for use with high-reasoning LLMs such as OpenAI's GPT-4 series or compatible agents.

    No, this skill is designed for specific application boundaries where the language and runtime have already been decided; it focuses strictly on choosing the best framework within those established constraints.

    You receive a comprehensive instruction set including an output contract, domain and operating rules, and a Markdown template for the final Framework Evaluation Matrix deliverable.

    This skill is a set of logic and architectural instructions; it does not require network access, API keys, or environment variables, making it safe for use in secure, air-gapped, or restricted environments.

    The skill follows a 6-step workflow that includes assessing vertical slices and classifying every claim by evidence, ensuring the final recommendation is based on verifiable data rather than subjective opinion.

    New in APIs & Backend