SKU Examples
Real-world examples of SKU usage across different scenarios and deployment patterns.
Basic Examples
REST API on AWS Kubernetes
1.0.0.API.EKS.20250127
Breakdown:
- Version:
1.0.0- First production release - Type:
API- REST/GraphQL API service - Platform:
EKS- AWS Elastic Kubernetes Service - Built:
20250127- January 27, 2025
Use Case: Production API microservice running on AWS EKS cluster.
Background Worker on Google Kubernetes
2.5.1.BOT.GKE.20250115
Breakdown:
- Version:
2.5.1- Patch release on version 2.5 - Type:
BOT- Background worker/automation - Platform:
GKE- Google Kubernetes Engine - Built:
20250115- January 15, 2025
Use Case: Queue processing worker running on GCP GKE cluster.
RAG Service on AWS Lambda
1.2.0.RAG.LM.20250201
Breakdown:
- Version:
1.2.0- Minor feature update - Type:
RAG- Retrieval-Augmented Generation system - Platform:
LM- AWS Lambda - Built:
20250201- February 1, 2025
Use Case: Serverless RAG system using retrieval and model orchestration.
Next.js App on Vercel
3.0.0.WA.VE.20250110
Breakdown:
- Version:
3.0.0- Major version with breaking changes - Type:
WA- Web application - Platform:
VE- Vercel - Built:
20250110- January 10, 2025
Use Case: Next.js web application deployed to Vercel.
Multi-Platform Deployments
Same Service, Multiple Cloud Providers
1.0.0.API.EKS.20250127 # AWS deployment
1.0.0.API.GKE.20250127 # GCP deployment
1.0.0.API.AKS.20250127 # Azure deployment
Scenario: Multi-cloud API service for high availability.
Notes:
- Same version across all platforms
- Same build date (built simultaneously)
- Different platform codes
- May have platform-specific configurations
Hybrid Serverless + Container
1.5.0.API.EKS.20250115 # Main API on Kubernetes
1.5.0.FX.LM.20250115 # Serverless functions
Scenario: Core API on K8s with serverless functions for event processing.
Notes:
- Same version number
- Different system types (API vs FX)
- Different platforms (EKS vs LM)
- Part of same release
Complete System Examples
E-commerce Platform
2.3.0.API.EKS.20250201 # Main API (Products, Orders)
2.3.0.BOT.EKS.20250201 # Order processor
2.3.0.WA.VE.20250201 # Customer-facing web app
2.3.0.WA.CF.20250201 # Admin dashboard
2.3.0.ETL.LM.20250201 # Analytics pipeline
2.3.0.INT.LM.20250201 # Payment integrations
System Architecture:
- Microservices on EKS
- Frontend on Vercel
- Admin on Cloudflare Pages
- Serverless for ETL and integrations
AI Document Processing System
1.0.0.RAG.EKS.20250115 # RAG service
1.0.0.API.EKS.20250115 # REST API
1.0.0.BOT.EKS.20250115 # Document processor
1.0.0.ETL.LM.20250115 # Data pipeline
1.0.0.WA.VE.20250115 # Web interface
System Architecture:
- Core RAG processing on EKS
- API for external integrations
- Background worker for async processing
- Serverless ETL for data ingestion
- Next.js frontend
Mobile App Ecosystem
1.2.0.MA.APP.20250201 # Native iOS/Android app
1.2.0.API.EKS.20250201 # Mobile backend API
1.2.0.BOT.EKS.20250201 # Push notification service
1.2.0.SDK.NPM.20250201 # JavaScript SDK
System Architecture:
- Native mobile app
- API backend on Kubernetes
- Push notification worker
- SDK for third-party integrations
Development Lifecycle Examples
Feature Development
# Start feature branch
1.5.0.API.EKS.20250101 # Current production
# Development builds
1.6.0.API.EKS.20250105 # Feature branch build
1.6.0.API.EKS.20250108 # Updated feature
# Release candidate
1.6.0.API.EKS.20250110 # Final RC
# Production release
1.6.0.API.EKS.20250110 # Same as RC
Hotfix Process
# Production issue detected
2.0.0.API.EKS.20250201 # Current production (has bug)
# Create hotfix
2.0.1.API.EKS.20250202 # Hotfix patch
# Deploy hotfix
2.0.1.API.EKS.20250202 # Now in production
Major Version Migration
# Old version (still supported)
1.8.5.API.EKS.20250101 # Version 1.x
# New version (parallel deployment)
2.0.0.API.EKS.20250201 # Version 2.x (breaking changes)
# Gradual traffic shift
# Eventually deprecate 1.x
# Continue evolution
2.0.1.API.EKS.20250205 # Patches on 2.x
2.1.0.API.EKS.20250301 # Features on 2.x
Package Distribution Examples
Python SDK
1.0.0.SDK.PYPI.20250127 # Initial release
1.1.0.SDK.PYPI.20250201 # New features
1.1.1.SDK.PYPI.20250205 # Bug fix
Usage:
pip install egi-sdk==1.1.1
CLI Tool
2.0.0.CLI.GH.20250115 # Major version
2.0.1.CLI.GH.20250120 # Patch
2.1.0.CLI.GH.20250201 # New commands
Usage:
# Download from GitHub Releases
wget https://github.com/egi/cli/releases/download/v2.1.0/egi-cli-2.1.0
Integration Examples
In Code
Python
# Version constant
ENGINE_SKU = "1.0.0.API.EKS.20250127"
# In FastAPI
@app.get("/health")
def health():
return {
"status": "healthy",
"sku": ENGINE_SKU
}
JavaScript/TypeScript
// Version constant
const ENGINE_SKU = "1.0.0.API.EKS.20250127";
// In Express
app.get('/health', (req, res) => {
res.json({
status: 'healthy',
sku: ENGINE_SKU
});
});
In Kubernetes
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: api-service
labels:
egi.com/sku: "1.0.0.API.EKS.20250127"
spec:
template:
metadata:
labels:
egi.com/sku: "1.0.0.API.EKS.20250127"
spec:
containers:
- name: api
image: registry/api:1.0.0.API.EKS.20250127
env:
- name: ENGINE_SKU
value: "1.0.0.API.EKS.20250127"
Helm Values
# values.yaml
sku: "1.0.0.API.EKS.20250127"
image:
repository: registry/api
tag: "1.0.0.API.EKS.20250127"
env:
ENGINE_SKU: "1.0.0.API.EKS.20250127"
In Docker
Dockerfile
FROM node:18-alpine
ARG SKU
ENV ENGINE_SKU=${SKU}
LABEL com.egi.sku="${SKU}"
LABEL version="1.0.0"
LABEL platform="EKS"
LABEL build-date="20250127"
COPY . /app
WORKDIR /app
RUN npm install
CMD ["npm", "start"]
Build Command
docker build \
--build-arg SKU=1.0.0.API.EKS.20250127 \
-t api:1.0.0.API.EKS.20250127 \
.
CI/CD Examples
GitHub Actions
name: Build and Deploy
on:
push:
tags:
- 'v*'
env:
SYSTEM_TYPE: API
PLATFORM: EKS
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Generate SKU
id: sku
run: |
VERSION=${GITHUB_REF#refs/tags/v}
DATE=$(date +%Y%m%d)
SKU="${VERSION}.${SYSTEM_TYPE}.${PLATFORM}.${DATE}"
echo "sku=${SKU}" >> $GITHUB_OUTPUT
echo "Generated SKU: ${SKU}"
- name: Validate SKU
run: |
python standards/sku/sku_audit.py validate "${{ steps.sku.outputs.sku }}"
- name: Build Docker Image
run: |
docker build \
--build-arg SKU=${{ steps.sku.outputs.sku }} \
-t myapi:${{ steps.sku.outputs.sku }} \
.
- name: Push to Registry
run: |
docker tag myapi:${{ steps.sku.outputs.sku }} \
registry.com/myapi:${{ steps.sku.outputs.sku }}
docker push registry.com/myapi:${{ steps.sku.outputs.sku }}
Pre-commit Hook
#!/bin/bash
# .git/hooks/pre-commit
echo "Validating SKUs in codebase..."
python standards/sku/sku_audit.py scan . --only-invalid
if [ $? -ne 0 ]; then
echo "Invalid SKUs found. Please fix before committing."
exit 1
fi
echo "SKU validation passed."
Testing Examples
QA Test Suite
1.0.0.QA.GHA.20250127 # E2E test suite
In GitHub Actions:
name: E2E Tests
on: [push]
env:
TEST_SKU: "1.0.0.QA.GHA.20250127"
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run E2E Tests
run: npm run test:e2e
See Also
- Naming Conventions - SKU format details
- Platform Identifiers - Platform codes
- System Types - System type codes
- Tooling - Tools for generating and validating SKUs