skills/c8y-architect-microservice-chassis-advisor/SKILL.md
Recommends the best Cumulocity microservice chassis / framework for a given project. Use when a developer or architect asks which microservice chassis to use, which framework to pick for a Cumulocity microservice, how to choose between NestJS, Nitro, Spring Boot, .NET, or Python for a microservice, or needs a chassis decision for TypeScript, JavaScript, Java, C#, or Python on Cumulocity.
npx skillsauth add cumulocity-iot/cumulocity-skills c8y-architect-microservice-chassis-advisorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Invoke this skill whenever someone asks:
Ask (or infer from context) the following. You do not need all answers; work with what is available.
| # | Question | Why it matters | |---|---|---| | 1 | What is the primary use case? (e.g. ERP bridge, SCADA agent, data pipeline, platform extension, analytics) | Narrows the shortlist immediately | | 2 | What is the team's primary tech stack? (TypeScript / Java / C# / Python / mixed) | Skill-fit is the strongest single factor | | 3 | Is official Cumulocity SDK support a hard requirement? | Only Spring Boot + Java SDK is officially supported | | 4 | What are the expected load characteristics? (low/bursty, medium/steady, high-throughput, mega-fleet) | Impacts runtime, footprint, and concurrency model | | 5 | Are there resource / cost constraints on the deployment? (e.g. tight memory limits, edge deployment) | Favours Nitro or .NET AOT | | 6 | Is AI / ML / data processing part of the microservice logic? | Strongly favours Python | | 7 | Is this a rapid PoC or a long-lived production service? | PoC → Nitro or Python; production → NestJS, Spring Boot, or .NET | | 8 | Are there enterprise governance requirements (e.g. auditability, support SLAs, supply-chain policies)? | Favours officially backed frameworks |
Score the shortlisted options against the criteria below.
Rating: 🟢 High / Excellent | 🟡 Medium / Good | 🔴 Low / Limited
| Criterion | NestJS + @c8y/client | Nitro + c8y-nitro | Spring Boot + Java SDK | .NET Generic Host + C# SDK | Python + FastAPI |
|---|:---:|:---:|:---:|:---:|:---:|
| Team Skill Fit | 🟢 Web / TS teams | 🟢 Web / TS teams | 🟡 Java specialists needed | 🟡 .NET specialists needed | 🟢 Broad — data, DevOps, web |
| Official Cumulocity Support | 🟡 Community | 🟡 Community | 🟢 Official & fully supported | 🟡 Community | 🟡 Community |
| Cross-Cutting Features OOB | 🟢 Comprehensive | 🟢 Comprehensive | 🟢 Comprehensive | 🟢 Comprehensive | 🟡 Moderate |
| Resilience Patterns OOB | 🟡 Via libraries | 🟡 Probes + libraries | 🟢 Resilience4j native | 🟢 Polly native | 🟡 Via tenacity |
| Observability | 🟡 Via plugins | 🟢 Structured logging + OpenTelemetry | 🟢 Actuator + Micrometer | 🟢 OpenTelemetry native | 🟡 Via libraries |
| Runtime Throughput & CPU Efficiency | 🟡 Medium | 🟢 High | 🟡 Medium | 🟢 High | 🟡 Medium |
| Memory & Docker Image Footprint | 🟡 Medium | 🟢 Very Low | 🔴 High (🟢 Low with Spring Boot AOT) | 🟢 Low (🟢🟢 with AOT) | 🟡 Medium |
| Cold Start / Startup Time | 🟡 Fast | 🟢 Very Fast | 🔴 Slow (🟢 Very Fast with GraalVM) | 🟡 Fast (🟢 Very Fast with AOT) | 🟢 Fast |
| Scalability & Concurrency Model | 🟢 Async event-loop | 🟢 Async event-loop | 🟡 Thread-pool (reactive opt.) | 🟡 Thread-pool (async/await opt.) | 🟡 Async via asyncio |
| Type Safety | 🟢 Strong (TypeScript) | 🟢 Strong (TypeScript) | 🟢 Strong (Java) | 🟢 Strong (C#) | 🟡 Partial (type hints, Pydantic) |
| Boilerplate Required | 🔴 Heavy | 🟢🟢 None | 🔴 Very Heavy | 🔴 Heavy | 🟢 Minimal |
| AI / ML & Data Integration | 🟡 Via npm libraries | 🟡 Via npm libraries | 🟡 Via libraries (DL4J, Spring AI) | 🟡 Via NuGet (ML.NET) | 🟢 Native — NumPy, Pandas, PyTorch |
| Ecosystem Maturity & Community Size | 🟢 Large | 🟡 Nitro strong; c8y-nitro niche | 🟢 Very Large | 🟢 Large | 🟢 Very Large |
| Long-term Commercial Backing | 🟢 NestJS Inc. | 🟢 Vercel-backed Nuxt/Nitro ecosystem | 🟢 Broadcom (Spring) | 🟢 Microsoft | 🟢 PSF + broad industry |
Use these rules to short-circuit the matrix for common scenarios:
Structure your response as follows:
| Asset | When to load |
|-------|-------------|
| references/dx.md | Use this if you want a detailed comparison of developer experience across different ecosystems |
| Chassis | Starter / Docs | |---|---| | NestJS + @c8y/client | NestJS · @c8y/client (npm) · Cumulocity Web SDK Docs | | Nitro + c8y-nitro | Nitro · c8y-nitro (GitHub) · Starter Template | | Spring Boot + Java SDK | Spring Boot · Java Microservice SDK (Docs) · Java Clients project · Maven Archetype for Microservice · Examples & Templates | | .NET Generic Host + C# SDK | .NET · Cumulocity .NET SDK · Cumulocity .NET Client | | Python + FastAPI | FastAPI · Python API (GitHub) · Python MS SDK (GitHub) |
tools
Scaffold a new Cumulocity application using the @c8y/websdk Angular schematic without human interaction. Covers Angular CLI installation, app generation, schematic setup, AI tools configuration, dev server, and build commands. Triggers: new app, scaffold, create application, ng add websdk, setup cumulocity app, new cumulocity project.
tools
Step-by-step guide to migrate a Cumulocity Web SDK application to a target version. Detects breaking changes with the ui-breaking-changes-cli, scaffolds a reference app at the target version with the new-app skill, compares key configuration files (app.ts, bootstrap.ts, angular.json, etc.), and finishes with a code-quality-analysis review. Triggers: migrate app, upgrade version, breaking changes, sdk upgrade, migrate cumulocity, upgrade websdk.
development
Complete guide to internationalizing a Cumulocity Web SDK application. Covers all approaches to annotating and translating text (gettext, translate pipe, translate directive, TranslateService), extracting strings, creating and updating .po files, overriding existing translations, and adding brand-new languages. Triggers: i18n, internationalization, add language, translate, translation, localization, l10n, new language, po file, gettext, TranslateService, language switcher.
development
Analyze Angular / Cumulocity Web SDK code for anti-patterns, bugs, and quality issues. Use when reviewing components, services, or modules for code quality, maintainability, performance, and correctness. Covers TypeScript best practices, Angular idioms, C8Y SDK usage patterns, and project-specific conventions. Triggers: code review, anti-pattern, quality check, refactor suggestion, style guide, bug analysis.