Files
multitenetsaas/specs/001-1-target-sectors/research.md
AHMET YILMAZ b3fff546e9
Some checks failed
System Monitoring / Health Checks (push) Has been cancelled
System Monitoring / Performance Monitoring (push) Has been cancelled
System Monitoring / Database Monitoring (push) Has been cancelled
System Monitoring / Cache Monitoring (push) Has been cancelled
System Monitoring / Log Monitoring (push) Has been cancelled
System Monitoring / Resource Monitoring (push) Has been cancelled
System Monitoring / Uptime Monitoring (push) Has been cancelled
System Monitoring / Backup Monitoring (push) Has been cancelled
System Monitoring / Security Monitoring (push) Has been cancelled
System Monitoring / Monitoring Dashboard (push) Has been cancelled
System Monitoring / Alerting (push) Has been cancelled
Security Scanning / Dependency Scanning (push) Has been cancelled
Security Scanning / Code Security Scanning (push) Has been cancelled
Security Scanning / Secrets Scanning (push) Has been cancelled
Security Scanning / Container Security Scanning (push) Has been cancelled
Security Scanning / Compliance Checking (push) Has been cancelled
Security Scanning / Security Dashboard (push) Has been cancelled
Security Scanning / Security Remediation (push) Has been cancelled
project initialization
2025-10-05 02:37:33 +08:00

119 lines
3.8 KiB
Markdown

# Research Findings
## Multi-Tenant Architecture Decisions
### Database Multi-Tenancy Strategy
**Decision**: PostgreSQL with Row-Level Security (RLS)
**Rationale**:
- Provides strong data isolation between tenants
- Supported by Django and FastAPI
- Built-in security at database level
- Cost-effective for 100 tenant scale
- Malaysian data residency compliance
**Alternatives considered**:
- Separate databases per tenant: Too expensive at scale
- Schema-based tenancy: Complex management and migration challenges
- Application-level filtering: Higher security risk
### Backend Framework Selection
**Decision**: Django + Django REST Framework
**Rationale**:
- Built-in admin interface for back office
- Mature multi-tenant packages (django-tenants)
- Strong ORM for complex data models
- Authentication system built-in
- Malaysian developer community support
**Alternatives considered**:
- FastAPI: Better performance but less built-in admin
- Flask: Too minimal for complex business logic
- Node.js: Not ideal for Malaysian enterprise market
### Frontend Framework Selection
**Decision**: Next.js with TypeScript
**Rationale**:
- Server-side rendering for SEO
- Type safety for large codebase
- Malaysian SME users need fast, responsive UI
- Strong component ecosystem
- Easy deployment with Docker
### Authentication Strategy
**Decision**: Multi-auth approach with Django Allauth
**Rationale**: Supports all required methods:
- Email/password with MFA
- SSO integration
- OAuth providers
- Custom Malaysian National ID integration (future)
### Payment Processing
**Decision**: Stripe + Midtrans dual integration
**Rationale**:
- Stripe: International standard, subscription management
- Midtrans: Malaysian payment methods (FPX, e-wallets)
- Both support recurring billing and one-time payments
- Well-documented APIs for both frameworks
### Healthcare Compliance
**Decision**: PDPA 2010 + additional safeguards
**Rationale**:
- Malaysian Personal Data Protection Act compliance
- Audit trails for patient data access
- Data encryption at rest and in transit
- Role-based access control for healthcare data
- Ready for future international standards adoption
### Performance & Scalability
**Decision**: Vertical scaling first, with horizontal expansion path
**Rationale**:
- 100 tenants with 10 users each fits well on single server
- PostgreSQL connection pooling for efficiency
- Redis for caching and session management
- Kubernetes-ready for future expansion
- Container orchestration for consistent deployment
### Infrastructure
**Decision**: Docker + Kubernetes
**Rationale**:
- Consistent development and production environments
- Malaysian cloud provider support (AWS, Azure, Google Cloud)
- Auto-scaling capabilities
- Rolling updates without downtime
- Malaysian data center options
### Module Architecture
**Decision**: Django Apps with Plugin System
**Rationale**:
- Each industry module as separate Django app
- Shared core infrastructure
- Plugin-based activation based on subscription
- Independent testing and deployment
- Malaysian market-specific customizations per module
### Data Retention Implementation
**Decision**: Automated cleanup with configurable periods
**Rationale**:
- 90-day retention period configurable per tenant
- Soft delete with permanent cleanup
- Audit logging for compliance
- Tenant-level override capability
- Malaysian legal compliance
### Testing Strategy
**Decision**: Pyramid testing approach
**Rationale**:
- Contract tests for API compatibility
- Integration tests for multi-tenant isolation
- Unit tests for business logic
- End-to-end tests for user flows
- Performance tests for scalability validation
### Monitoring & Observability
**Decision**: ELK Stack + Prometheus
**Rationale**:
- Malaysian developer community support
- Multi-tenant usage monitoring
- Performance bottleneck identification
- Security event logging
- Malaysian data residency compliance