Files
LLMScaffolding/artifacts/CorePrompts/CoreRequirements-SAAS.md

3.6 KiB

Core Technical Requirements & Architecture Document

Development Environment & Workflow

  • All work will be performed exclusively inside Docker or devcontainer environments. The host machine must remain pristine.
  • All commands will be executed inside containers using docker exec.
  • Work will be done on dedicated feature branches (e.g., feature/login, wip/database-migration). The main branch is protected and will not be used for direct commits.
  • A dedicated docs branch will be used for all documentation and will be kept merged into all active feature branches.
  • Frequent commits and pushes are mandatory. Use Git tags to mark significant milestones and release points, ensuring tags are pushed to the remote repository.
  • Tools: Gitea will be the sole Git repository management system.

Language & Technology Stack

  • The preferred languages, in descending order of preference, are Rust, Go, and C.
  • Rust is the primary choice for its security, performance, and memory safety.
  • Go will be used for its concurrency and simplicity, especially for services requiring high-concurrency handling.
  • C will be used sparingly for specific, performance-critical components via Foreign Function Interface (FFI).
  • Node.js and Python will be avoided unless a specific feature has a clear, compelling advantage.
  • Cloud/PAAS: Coolify will be used for custom application deployment.

Architecture, Security & Compliance

  • The architecture will be based on microservices, with the smallest possible feature boundaries.
  • Security is paramount. All projects will adhere to SOC, SOX, PCI, GDPR, and NIST standards. ITAR and classified work requirements will be handled on a per-project basis.
  • Accessibility and internationalization are essential and non-optional requirements for all projects.
  • Database: PostgreSQL will be our primary database.
  • Data Access: No direct database access is permitted between microservices. All communication must be handled via APIs.

Analysis & Recommendations

Based on your new input, I have refined our architectural blueprint and can now propose concrete solutions.

Q: How should we handle Continuous Integration and Continuous Deployment? A: We will use Gitea Actions as the default for event-driven workflows (e.g., pushes to feature branches, pull requests). Jenkins will be used for scheduled jobs, such as nightly builds or automated deployment runs, leveraging its powerful scheduling features.

Q: For persistent data, what are your preferences for database technologies? How should we handle state management between microservices? A: PostgreSQL will be our primary database. State management between microservices will be strictly handled through API communication; no direct database access is allowed between services.

Q: What is your preferred protocol for communication between microservices? How should we handle API versioning and documentation? A: We will use gRPC for inter-service communication due to its performance and type safety, which aligns with our language preferences. APIs will be versioned and documented using the OpenAPI (Swagger) specification.

Q: How should we integrate logging, tracing, and monitoring into the development workflow to ensure we have clear visibility into application performance and health? A: We will use a comprehensive, self-hosted observability stack: OpenTelemetry for collecting data, Prometheus for metrics, Grafana Loki for logs, and SigNoz for distributed tracing and unified visualization.