Skip to main content

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