Skip to main content

Design Phase Recipes

This collection provides ready-to-use patterns, templates, and workflows for the GISE Design phase. These recipes help you create robust, scalable architecture with comprehensive documentation.

Architecture Planning Recipes

System Architecture Template

Database Design Pattern

-- User Management Schema
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
status VARCHAR(20) DEFAULT 'active',
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);

-- Business Entity Schema
CREATE TABLE projects (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
description TEXT,
owner_id UUID REFERENCES users(id) ON DELETE CASCADE,
status VARCHAR(20) DEFAULT 'draft',
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);

-- Indexes for Performance
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_projects_owner ON projects(owner_id);
CREATE INDEX idx_projects_status ON projects(status);

API Design Patterns

RESTful API Structure

openapi: 3.0.3
info:
title: GISE API Template
version: 1.0.0
description: Standard API design following GISE patterns

paths:
/api/v1/projects:
get:
summary: List projects
parameters:
- name: page
in: query
schema:
type: integer
default: 1
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Projects retrieved successfully
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Project'
meta:
$ref: '#/components/schemas/PaginationMeta'

Security Architecture Recipes

Authentication Flow Design

Technical Decision Templates

Decision Record Template

# ADR-XXX: [Decision Title]

## Status
[Proposed | Accepted | Deprecated | Superseded]

## Context
[Describe the situation that necessitates a decision]

## Decision
[State the decision that was made]

## Rationale
[Explain why this decision was made]

## Consequences
[Describe the positive and negative outcomes]

## Alternatives Considered
[List other options that were evaluated]

## References
[Link to supporting documentation]

Related Resources:

These recipes provide starting points for common design patterns. Adapt them to your specific requirements and context.