veza/ORIGIN_GAP_ANALYSIS_2026-03-04.md
2026-03-05 19:22:31 +01:00

56 KiB
Raw Blame History

ORIGIN GAP ANALYSIS — Veza Platform

Date: 4 mars 2026


1. RÉSUMÉ EXÉCUTIF

Position sur la Timeline ORIGIN

Le plan ORIGIN définit 600 features réparties sur 8 phases en 24 mois (février 2025 janvier 2027). Selon ce calendrier, en mars 2026, le projet devrait achever la Phase 5 (Intelligence & Analytics) avec ~360 features cumulées.

État réel : le projet se situe au niveau de la Phase 3 complétée avec environ ~231 features individuelles implémentées (dont ~55 partiellement), ce qui le place approximativement 6 mois en retard sur le planning ORIGIN.

Métriques Clés

Indicateur Objectif ORIGIN (mars 2026) État Actuel Écart
Features cumulées 360 (fin P5) ~231 (dont ~55 partielles) -129 features
Couverture tests ≥ 80% ~50% (frontend), non mesuré (Go) -30%
Vulnérabilités critiques 0 2 (JWT default Rust, JWT mismatch) -2
Phases complètes P0 à P5 P0 à P3 (P4 à ~30%) -2 phases
Uptime 99.9% Non mesuré en prod N/A
MAU 5,000+ (P5) Pre-launch N/A
MRR $30,000+ (P5) $0 (pre-launch) N/A

Complétion Globale

Catégorie ORIGIN Actuel %
Features implémentées 600 ~176 pleinement 29%
Features partielles ~55 9%
Features manquantes ~369 62%
Architecture conforme 100% ~70%
Qualité conforme 100% ~45%

Verdict

Le projet a construit des fondations solides (auth complète, streaming fonctionnel, marketplace opérationnel, infrastructure CI/CD mature) mais accuse un retard significatif par rapport au planning ORIGIN. Ce retard est principalement dû à :

  1. Scope réaliste : le plan ORIGIN avec 600 features en 24 mois pour une équipe de 2-8 devs est extrêmement ambitieux
  2. Pivots architecturaux : migration chat Rust→Go, Stripe→Hyperswitch, simplification de la stack
  3. Modules abandonnés : Education (F276-F305), Gamification (F536-F550)
  4. Phases 5-8 non démarrées : AI, Enterprise, Web3, VR/AR

2. MATRICE DE COMPLÉTION PAR PHASE

Vue d'ensemble

ORIGIN Timeline vs Réalité (mars 2026)

Phase    Prévu         Réel          Features    Complétion
─────────────────────────────────────────────────────────────
P0       Fév 2025      ✅ Fait       0 (stab)    85%
P1       Mar-Avr 2025  ✅ Fait       50          90%
P2       Mai-Jun 2025  ✅ Fait       60          80%
P3       Jul-Sep 2025  ⚠️ Partiel   80          65%
P4       Oct-Déc 2025  ⚠️ ~30%      90          30%
P5       Jan-Mar 2026  ❌ Non        80          5%
P6       Avr-Jun 2026  ❌ Non        70          10%
P7       Jul-Sep 2026  ❌ Non        90          5%
P8       Oct-Jan 2027  ❌ Non        80          0%

Phase 0 : Stabilisation (1 mois) — COMPLÉTÉE à 85%

Objectif ORIGIN : Stabiliser l'existant, CI/CD, coverage 80%, monitoring, documentation, 0 bugs critiques.

Livrable ORIGIN Objectif État Actuel Statut
L0.1 CI/CD pipeline fonctionnel Pipeline vert 14 workflows GitHub Actions DÉPASSÉ
L0.2 Tests coverage > 80% backend 80% Go 306 fichiers test, seuil non enforced ⚠️ NON VÉRIFIÉ
L0.3 Tests coverage > 80% Rust 80% Rust Stream server : pas de coverage CI NON ATTEINT
L0.4 Tests E2E frontend (10 scenarios) 10 scénarios Playwright configuré, specs existantes ⚠️ PARTIEL
L0.5 Prometheus + Grafana opérationnels Monitoring Configs Prometheus/Grafana/Alertmanager dans docker-compose prod ATTEINT
L0.6 Documentation ORIGIN complète 15/15 docs 22 documents ORIGIN DÉPASSÉ
L0.7 Zero bugs critiques 0 critiques 2 vulns critiques (JWT) NON ATTEINT
L0.8 Build vert stable 7 jours Stabilité CI vert sur main ATTEINT

Critères bloquants non atteints : Coverage 80% non mesurée, 2 vulnérabilités critiques ouvertes.

Phase 1 : MVP Core (2 mois, 50 features) — COMPLÉTÉE à 90%

Objectif ORIGIN : MVP fonctionnel — Auth, Profils, Streaming basique, Upload.

Module ORIGIN Features Implémentées Partielles Manquantes
Auth (F001-F015) 15 13 1 (F008) 1 (F014)
Profils basiques (F031-F040) 10 10 0 0
Streaming basique (F106-F120) 15 12 2 (F119,F122) 1 (F120)
Upload (F066-F075) 10 8 1 (F072) 1 (F069)
Total P1 50 43 4 3

Features manquantes P1 : Password history (F014), URL import (F069), Equalizer (F120).

Phase 2 : Features Essentielles (2 mois, 60 features) — COMPLÉTÉE à 80%

Objectif ORIGIN : Playlists, Chat, Social basique.

Module ORIGIN Features Implémentées Partielles Manquantes
Streaming suite (F121-F145) 25 18 3 4
Chat (F151-F170) 20 8 6 6
Social basique (F186-F200) 15 8 4 3
Total P2 60 34 13 13

Écarts notables P2 :

  • Chat migré de Rust vers Go (ADR-002) — fonctionnel mais features avancées manquantes (reactions, mentions, markdown, GIFs)
  • Social : follow/unfollow implémenté, mais pas de recommendations, QR code, close friends
  • Playlists : CRUD complet, collaboration, mais pas de smart playlists ni export

Phase 3 : Marketplace & Monétisation (3 mois, 80 features) — COMPLÉTÉE à 65%

Objectif ORIGIN : Marketplace, Education, Hardware.

Module ORIGIN Features Implémentées Partielles Manquantes
Marketplace (F226-F275) 50 28 10 12
Education (F276-F290) 15 0 6 (backend only) 9
Hardware/Gear (F306-F320) 15 12 2 1
Total P3 80 40 18 22

Écarts notables P3 :

  • Education : Backend et DB schema existent (core/education/), mais tests skippés et aucun frontend — module effectivement non livré
  • Marketplace : CRUD produits, licences (personal/commercial/exclusive), cart, checkout Hyperswitch — mais pas de PayPal/crypto, pas de e-signature, pas de licence history
  • Paiement : Hyperswitch au lieu de Stripe (pivot architectural documenté)

Phase 4 : Social & Collaboration (3 mois, 90 features) — COMPLÉTÉE à 30%

Objectif ORIGIN : Social avancé, Collaboration DAW, Live streaming, Gamification.

Module ORIGIN Features Implémentées Partielles Manquantes
Social avancé (F201-F225) 25 5 8 12
Collaboration (F481-F510) 30 2 (playlist collab) 0 28
Live Streaming (F471-F490) 20 3 4 13
Gamification (F536-F550) 15 0 2 (frontend UI only) 13
Total P4 90 10 14 66

Écarts notables P4 :

  • DAW Collaboration : non implémenté (0/30 features)
  • Gamification : supprimée du scope en v0.971 — ProfileXPView et AchievementCard existent côté frontend mais sans backend
  • Live Streaming : infrastructure HLS basique en place, GoLiveView et TipStreamerModal existent, mais features avancées manquantes
  • WebRTC : code présent mais non fonctionnel (dépendance commentée)

Phase 5 : Intelligence & Analytics (3 mois, 80 features) — COMPLÉTÉE à 5%

Module ORIGIN Features Implémentées Partielles Manquantes
AI/ML (F456-F470) 15 0 2 (similarity, BPM detect) 13
Analytics (F381-F410) 30 4 8 18
Search avancé (F351-F370) 20 4 6 10
Education suite (F291-F305) 15 0 0 15
Total P5 80 8 16 56

Phase 6 : Monétisation Avancée (3 mois, 70 features) — COMPLÉTÉE à 10%

Module ORIGIN Features Implémentées Partielles Manquantes
Notifications (F551-F570) 20 6 4 10
Security Advanced (F571-F585) 15 8 4 3
Developer API (F586-F600) 15 5 4 6
UI/UX (F436-F455) 20 6 6 8
Total P6 70 25 18 27

Note : Certaines features P6 ont été implémentées en avance (security headers, rate limiting, API keys, notifications basiques, thèmes light/dark).

Phase 7 : Scale & Enterprise (3 mois, 90 features) — COMPLÉTÉE à 5%

Module ORIGIN Features Implémentées Partielles Manquantes
Cloud Storage (F331-F350) 20 6 6 8
Administration (F411-F435) 25 8 6 11
External Integrations (F501-F520) 20 4 (OAuth) 2 14
Native Apps (F521-F535) 15 1 (PWA) 0 14
Scaling infra 10 2 (K8s manifests) 2 6
Total P7 90 21 16 53

Phase 8 : Innovation & IA (4 mois, 80 features) — COMPLÉTÉE à 0%

Module ORIGIN Features Implémentées Partielles Manquantes
AI Avancé 30 0 0 30
Web3/Blockchain (F491-F500) 30 0 0 30
VR/AR Experimental 20 0 0 20
Total P8 80 0 0 80

Synthèse Phases

Phase Prévu Implémenté Partiel Manquant % Complet
P0 0 (stab) 85%
P1 50 43 4 3 90%
P2 60 34 13 13 68%
P3 80 40 18 22 61%
P4 90 10 14 66 19%
P5 80 8 16 56 15%
P6 70 25 18 27 49%
P7 90 21 16 53 32%
P8 80 0 0 80 0%
TOTAL 600 181 99 320 38%

3. ANALYSE DES ÉCARTS PAR MODULE (F001-F600)

M01 : Auth & Security (F001-F030)

ID Feature Statut Preuve / Fichier
F001 Register email/password core/auth/handler.go, RegisterForm.tsx
F002 Email verification core/auth/handler.go (VerifyEmail), VerifyEmailPage.tsx
F003 Login email/password handlers/auth.go (Login), LoginPage.tsx
F004 OAuth Google services/oauth_service.go, oauth_handlers.go
F005 OAuth GitHub services/oauth_service.go, test integration
F006 OAuth Discord services/oauth_service.go
F007 OAuth Spotify services/oauth_service.go
F008 Remember Me handlers/auth.go (rememberMe), LoginForm.tsx
F009 Logout core/auth/handler.go (Logout), useLogout.ts
F010 Logout all handlers/session.go (LogoutAll)
F011 Password reset request password_reset_handler.go, ForgotPasswordForm.tsx
F012 Password reset confirm password_reset_handler.go, ResetPasswordPage.tsx
F013 Change password api/user/handler.go (ChangePassword)
F014 Password history Uniquement dans ORIGIN schema, pas de table en migration
F015 Password strength validators/password_validator.go, PasswordStrengthIndicator.tsx
F016 2FA TOTP setup services/two_factor_service.go, 2fa-service.ts
F017 2FA verify TwoFactorVerify.tsx, POST /auth/login/2fa
F018 2FA backup codes two_factor_service.go (RecoveryCodes)
F019 2FA SMS ⚠️ UI existe (TwoFactorSetupStep2.tsx), handleSmsUnavailable → "not yet available"
F020 Passkeys/WebAuthn ⚠️ PasskeyModal.tsx (UI only, simule API), pas de backend
F021 Session management handlers/session.go, SessionsPage.tsx
F022 Login notification Non implémenté
F023 Geolocation ⚠️ ip_address stocké dans sessions, pas de geo-lookup
F024 Login history ⚠️ LoginHistory.tsx existe, route backend planifiée (V0_903)
F025 IP whitelisting Non implémenté (whitelist CORS/OAuth uniquement)
F026 Rate limiting login endpoint_limiter.go (LoginRateLimit)
F027 CAPTCHA Planifié V0_903, pas d'implémentation
F028 Bruteforce detection ⚠️ Via rate limiting + lockout, pas de service dédié
F029 Account lockout account_lockout_service.go
F030 Security questions Non implémenté

Score : 22/30 (73%) — 4 partielles, 5 manquantes

M02 : Profils (F031-F065)

ID Feature Statut Preuve
F031 Create/edit profile profile_handler.go, ProfileForm.tsx
F032 Avatar upload avatar_handler.go, avatarService.ts
F033 Banner upload user.go (BannerURL), EditProfileImagesCard.tsx
F034 Username useUsernameAvailability.ts, check-username endpoint
F035 Bio user.go (Bio), ProfileIdentity.tsx
F036 Location user.go, ProfileIdentity.tsx
F037 Birth date profile_handler.go, useEditProfile.ts
F038 Gender profile_handler.go, useEditProfile.ts
F039 Language preference api/user/types.go (Language), ui.ts (setLanguage)
F040 Timezone api/user/types.go (Timezone), settingsSchema.ts
F041 Custom profile URL /u/:username route, UserProfilePage.tsx
F042 Public/private profile ProfileVisibility, ProfileVisibilityCard.tsx
F043 Public contact email ⚠️ Pas de champ contact_email dédié
F044 Social links user.go (SocialLinks), ProfileSocialLinks.tsx
F045 Badges/achievements ⚠️ RoleBadge pour rôles, pas de système gamification complet
F046 Role User models/role.go, rbac_service.go
F047 Role Artist/Creator Idem
F048 Role Producer Idem
F049 Role Label Idem
F050 Role Formateur Idem
F051 Role Moderator Idem
F052 Role Admin Idem
F053 Granular permissions rbac_service.go, tables permissions, role_permissions
F054 Verified badge user.go (IsVerified), EmailVerificationBadge.tsx
F055 KYC Non implémenté
F056 Change email ChangeEmailModal.tsx
F057 Change username ChangeUsernameModal.tsx, CanChangeUsername
F058 Change language ui.ts (setLanguage), PreferenceSettings.tsx
F059 Theme light/dark ThemeProvider.tsx, ui.ts (theme)
F060-062 Notification preferences notification_handlers.go, PushPreferencesSection.tsx
F063 Privacy preferences PrivacySettings.tsx, settings_handler.go
F064 Profile visibility ProfileVisibilityCard.tsx
F065 Delete account GDPR account_deletion_handler.go, DeleteAccountView.tsx

Score : 31/35 (89%) — 2 partielles, 1 manquante (KYC)

M03 : File Management (F066-F105)

ID Feature Statut Preuve
F066 Single file upload uploadService.ts (chunked), upload.go
F067 Batch upload BatchUpload(), BatchUploader.tsx
F068 Drag & drop react-dropzone, FileUploadZone.tsx
F069 URL import Non implémenté
F070 Cloud import (Dropbox/Drive) ⚠️ UI dans IntegrationsView.tsx, pas de backend
F071 Progress bar UploadModalProgress, FilePreviewCard.tsx
F072 Pause/resume upload ⚠️ Chunked upload backend (track_chunk_service.go), pas de resume UI
F073 File size validation MAX_FILE_SIZE 100MB, ValidateFileSize
F074 MIME validation AllowedMimeTypes, magic bytes validation
F075 Antivirus scan ⚠️ ClamAV configuré mais désactivé par défaut
F076 Image compression ⚠️ Avatar resize via image_service.go, pas de compression générique
F077 Audio transcoding audio_transcode_service.go, FFmpeg pipeline
F078 Thumbnail generation thumbnail_job.go
F079 Metadata extraction metadata_service.go
F080 Watermarking ⚠️ WatermarkSettingsModal.tsx UI, pas de backend audio watermark
F081-F090 Formats (MP3/WAV/FLAC/OGG/AIFF/M4A/ZIP/RAR/PDF/VST) ⚠️ Audio : MP3/WAV/FLAC/OGG/M4A/AAC/AIFF — RAR/PDF/VST
F091-F105 Track metadata fields ⚠️ title, artist, album, genre, BPM, key, duration, tags, cover — label, ISRC, copyright, lyrics, suggested tags

Score : 11/40 plein, 9 partiels (50% complet)

M04 : Audio Streaming (F106-F150)

ID Feature Statut Preuve
F106-F110 Play/pause/next/prev/seek playerStore.ts
F111-F115 Volume/mute/shuffle/repeat/speed playerStore.ts
F116 Crossfade crossfadeSeconds dans playerStore
F117 Gapless playback Non implémenté
F118 Waveform WaveformDisplay.tsx, WaveformVisualizer.tsx
F119 Spectrogram ⚠️ Mode "spectrogram" dans VisualizerSettingsModal.tsx
F120 Equalizer Non implémenté
F121 Mini-player MiniPlayer.tsx
F122 Picture-in-Picture ⚠️ Référence dans PlayerBarRight, pas d'implémentation complète
F123 Keyboard shortcuts useMediaSession.ts + raccourcis clavier
F124 Media Session API useMediaSession.ts
F125 Chromecast/AirPlay Non implémenté
F126-F135 Queue management addToQueue, removeFromQueue, reorderQueue, QueuePanel
F136-F145 Playlists CRUD API complète, SharePlaylistModal, CollaboratorManagement
F146-F148 Smart playlists, merge, export Non implémenté
F149-F150 Playlist import/share ⚠️ Share , import limité (fichier uniquement)

Score : 28/45 (62%) — 4 partiels, 7 manquants

M05 : Chat (F151-F185)

ID Feature Statut Preuve
F151 DM 1-to-1 chat_repository.go GetDirectMessageRoom
F152-F154 Rooms public/private/group room_type varchar(50)
F155 Text messages CreateMessage
F156 Emoji Non vérifié dans chat
F157 Reactions Non implémenté
F158 Edit message is_edited flag
F159 Delete message is_deleted flag
F160 Threads ⚠️ parent_id existe, pas d'UI thread
F161 Mentions Non implémenté
F162 Markdown Non implémenté
F163 Image sharing Non implémenté dans chat
F164 GIFs Non implémenté
F165 Audio share Non implémenté
F166-F170 Search, filters, pin, bookmarks, notifs ⚠️ is_pinned , push_message pref , reste
F171-F175 Push, sound, badge, typing, read receipts Non implémenté
F176-F180 Online/offline, busy, custom status, AFK, last seen ⚠️ PresenceBadge.tsx, basique
F181-F185 Room users, invisible, presence notif, listening, rich Non implémenté

Score : 8/35 (23%) — 4 partiels, 17 manquants

M06 : Social (F186-F225)

ID Feature Statut Preuve
F186-F188 Follow/unfollow/followers list profileService.ts, profileHandler
F189 Following list Idem
F190 Block user BlockUser, UnblockUser
F191 Report user ⚠️ ReportHandler existe, flow incomplet
F192 Recommendations Non implémenté
F193-F195 Suggestions, collaboration request, referral Non implémenté
F196 Share profile ⚠️ URL /u/:username partageable
F197 QR code Non implémenté
F198 New follower notification ⚠️ Notification service existe, feature non confirmée
F199 Close friends Non implémenté
F200 Artist subscription Non implémenté
F201-F210 Posts (text/image/audio/video, like, comment, repost, quote, pin) ⚠️ CreatePostModal, PostCard, ExploreView — partiellement mocké
F211-F215 Delete/edit/private post, hashtags, trending ⚠️ UI existe, backend partiel
F216-F225 Groups (create, join, leave, invite, roles, forum, events, shared files, stats) ⚠️ CreateGroupModal, groupe cover — reste non implémenté

Score : 6/40 (15%) — 8 partiels, 16 manquants

M07 : Marketplace (F226-F275)

ID Feature Statut Preuve
F226-F235 Products CRUD, upload, preview, images, description, pricing productService.ts, CreateProductView*
F236-F240 Categories, tags, BPM/key metadata, genre, formats Product model avec metadata complète
F241-F243 Licences streaming/personal/commercial CreateProductViewPricingCard
F244-F246 Licence exclusive/lease/unlimited ⚠️ Exclusive , lease/unlimited
F247-F250 Terms, auto contract, e-signature, licence history Non implémenté
F251-F255 Cart, multi-product, wishlist, taxes, promo codes ⚠️ Cart , multi-product , wishlist ⚠️, taxes/promos
F256-F260 Checkout, card, PayPal, crypto, invoice ⚠️ Hyperswitch checkout , PayPal/crypto
F261-F265 Purchase history, re-download, refund, dispute, support ⚠️ Purchase history , reste partiel
F266-F270 Seller dashboard, stats, revenue, charts, top products SellerDashboardView, commerceService stats
F271-F275 Conversion, reviews, replies, promotions, payout ⚠️ Reviews , Stripe Connect payout , promotions

Score : 22/50 (44%) — 10 partiels, 8 manquants

M08 : Education (F276-F305)

ID Feature Statut Preuve
F276-F290 Courses, lessons, quizzes, certificates, enrollment ⚠️ Backend schema + handlers dans core/education/ — tests skippés, pas de frontend
F291-F305 Advanced education (paths, subscriptions, instructors) Non implémenté

Score : 0/30 plein, 6 partiels (backend only) — Module effectivement NON LIVRÉ

M09 : Hardware/Gear (F306-F330)

ID Feature Statut Preuve
F306-F315 Gear CRUD, images, documents, repairs, warranty gear_handler.go, GearItem, GearRepair, GearDocument, GearImage
F316-F320 Warranty notifications, maintenance history gear_warranty_notifier, inventory pages frontend
F321-F325 Lending, insurance, comparison Non implémenté
F326-F330 Marketplace integration, wish list gear Non implémenté

Score : 12/25 (48%) — 2 partiels, 5 manquants

M10 : Cloud Storage (F331-F350)

ID Feature Statut Preuve
F331-F340 Folders, files, upload, quota, versioning, restore, share cloud_handler.go, CloudPage, CloudFileVersions
F341-F345 Backup worker, integration view Cloud backup worker, CloudIntegrationView
F346-F350 Nextcloud sync, external cloud, collaborative edit Non implémenté

Score : 8/20 (40%) — 4 partiels

M11 : Search (F351-F380)

ID Feature Statut Preuve
F351-F355 Fulltext search, filters (genre, BPM, key) FullTextSearchService, PostgreSQL tsvector, TrackSearchService
F356-F360 Sort, autocomplete, suggestions Relevance, popularity, SearchService.Suggestions
F361-F370 Phonetic, spelling correction, semantic, audio similarity Non implémenté (nécessite Elasticsearch)
F371-F380 Search courses, groups, advanced filters Non implémenté

Score : 10/30 (33%) — Limité à PostgreSQL pg_trgm, pas d'Elasticsearch

M12 : Analytics (F381-F410)

ID Feature Statut Preuve
F381-F390 Playback analytics, heatmap PlaybackAnalyticsService, PlaybackHeatmapService
F391-F395 Creator dashboard (stats, trends) ⚠️ Track stats + plays over time , demographics/devices
F396-F400 Seller analytics ⚠️ SellerTransfer, basique
F401-F410 Admin analytics (DAU/MAU, retention, infra) ⚠️ AdminContentAnalytics, GetDashboardStats — basique

Score : 4/30 plein, 8 partiels (40% avec partiels)

M13 : Administration (F411-F435)

ID Feature Statut Preuve
F411-F415 User management (search, filters, pagination) GetUsers avec search/filters
F416-F420 Ban, suspend, reset password, role change ⚠️ BanUserModal, admin role checks — flow incomplet
F421-F425 Moderation queue, content moderation ⚠️ ReportHandler, ReportService — queue UI manquante
F426-F430 Copyright strikes, appeal system Non implémenté
F431-F435 Feature flags, announcements, maintenance Feature flags, maintenance middleware, announcements

Score : 12/25 (48%) — 6 partiels, 3 manquants

M14 : UI/UX (F436-F455)

ID Feature Statut Preuve
F436-F438 Light/dark/system theme ThemeProvider, ui.ts
F439-F441 High contrast, compact/comfortable, accent hue AppearanceSettingsView
F442-F445 Font size, custom palette, drag-drop layouts ⚠️ Font size , reste
F446-F450 Keyboard nav, screen reader, ARIA, focus visible, WCAG ⚠️ contrast.ts, aria-*, focus-visible, useReducedMotion — partiel
F451-F455 Dyslexia font, video transcriptions, auto subtitles Non implémenté

Score : 10/20 (50%) — 4 partiels, 4 manquants

M15 : AI (F456-F470)

ID Feature Statut Preuve
F456 AI Mastering Non implémenté
F457 Stem separation Non implémenté
F458 Genre detection Non implémenté
F459 BPM detection ⚠️ enable_bpm_detection dans stream server config
F460 Key detection Non implémenté
F461 Vocal removal Non implémenté
F462 Denoising Non implémenté
F463 Audio upscaling Non implémenté
F464 Auto-tags Non implémenté
F465 Similarity detection ⚠️ TrackSimilarityMatrix dans stream discovery
F466 Content ID Non implémenté
F467 ML recommendations ⚠️ Recommendation services basiques (non ML)
F468 Voice synthesis Non implémenté
F469 Auto lyrics transcription Non implémenté
F470 AI mixing Non implémenté

Score : 0/15 plein, 3 partiels — Module NON IMPLÉMENTÉ

M16 : Livestreaming (F471-F480)

ID Feature Statut Preuve
F471 Live DJ sets ⚠️ LiveStream model, GoLiveView, HLS support
F472 Live concerts ⚠️ Infrastructure HLS partagée
F473 Production sessions Non implémenté
F474 Multi-camera Non implémenté
F475 Live chat Pas de chat live dédié
F476 Donations/tips ⚠️ TipStreamerModal (UI)
F477 VOD replay ⚠️ HLS VOD support dans stream server
F478 Clipping Non implémenté
F479 Scheduling Non implémenté
F480 Viewer analytics Non implémenté

Score : 0/10 plein, 4 partiels — Module BASIQUE

M17 : Collaboration (F481-F490)

ID Feature Statut Preuve
F481 DAW collaboration Non implémenté
F482 Version control audio Non implémenté
F483 Temporal comments Non implémenté
F484 Stems sharing Non implémenté
F485 Co-edit playlists CollaboratorManagement, read/write/admin
F486 Whiteboard Non implémenté
F487 Video chat Non implémenté
F488 Screen sharing Non implémenté
F489 Project templates Non implémenté
F490 Collaboration workflow Non implémenté

Score : 1/10 (10%) — Uniquement playlist collaboration

M18 : Web3 (F491-F500)

Score : 0/10 (0%) — Aucune feature Web3 implémentée

(NFT, blockchain, smart contracts, tokens, staking, DAO, IPFS, wallet : tout manquant)

M19 : External Integrations (F501-F520)

ID Feature Statut Preuve
F501-F504 OAuth integrations Google, GitHub, Discord, Spotify
F505-F510 Social links Profile social links (YouTube, Instagram, Twitter, etc.)
F511-F520 DAW plugins, SoundCloud import, DistroKid, Zapier Non implémenté

Score : 4/20 (20%) — OAuth uniquement

M20 : Native Apps (F521-F535)

ID Feature Statut Preuve
F521 PWA usePWA hook
F522-F535 iOS, Android, React Native, Tauri, Electron Abandonné (voir V1_LIMITATIONS.md)

Score : 1/15 (7%) — PWA uniquement, apps natives abandonnées

M21 : Gamification (F536-F550)

ID Feature Statut Preuve
F536-F540 XP, levels, achievements ⚠️ ProfileXPView, AchievementCard (frontend, issues TS)
F541-F550 Challenges, leaderboards, rewards, etc. Backend API gamification absent

Score : 0/15 plein, 2 partiels — Supprimé du scope v0.971

M22 : Notifications (F551-F570)

ID Feature Statut Preuve
F551-F555 Real-time, badge counter, center, mark read NotificationService, NotificationMenu, NotificationBell
F556-F560 Filters, grouping, persistent, quick actions, history ⚠️ Filtres par type , reste partiel
F561-F570 Email templates (welcome, confirmation, reset, etc.) ⚠️ Password reset, verification — welcome, follower, purchase, newsletter

Score : 6/20 (30%) — 4 partiels, email templates incomplets

M23 : Security Advanced (F571-F585)

ID Feature Statut Preuve
F571-F573 Rate limiting global, per-endpoint, DDoS endpoint_limiter.go, rate limiting global
F574-F576 SQL injection, XSS, CSRF protection GORM params, DOMPurify, CSRF middleware
F577-F579 Clickjacking, CSP, HSTS ⚠️ HSTS , X-Frame-Options , CSP avec unsafe-inline
F580-F582 Security headers, audit logs, GDPR Headers complets, audit logs, data_export_service
F583-F585 CCPA, SOC2, data export ⚠️ GDPR export , CCPA/SOC2

Score : 10/15 (67%) — 2 partiels (CSP, compliance)

M24 : Developer API (F586-F600)

ID Feature Statut Preuve
F586-F588 REST API, API keys, webhooks APIKeyService, webhooks (register, list, test, stats)
F589 OpenAPI/Swagger Documentation Swagger
F590-F592 GraphQL, OAuth2 server Non implémenté
F593-F595 SDK JS/Python/Go Non implémenté
F596-F600 Sandbox, playground, logs, analytics, dashboard ⚠️ APIPlaygroundView, DeveloperDashboardView — partiel

Score : 5/15 (33%) — 4 partiels, GraphQL et SDKs manquants

Synthèse Globale par Module

Module Features ORIGIN Plein Partiel Manquant % Complet
M01 Auth 30 22 4 4 73%
M02 Profils 35 31 2 2 89%
M03 File Mgmt 40 11 9 20 39%
M04 Streaming 45 28 4 13 67%
M05 Chat 35 8 4 23 29%
M06 Social 40 6 8 26 25%
M07 Marketplace 50 22 10 18 54%
M08 Education 30 0 6 24 10%
M09 Gear 25 12 2 11 52%
M10 Cloud 20 8 4 8 50%
M11 Search 30 10 0 20 33%
M12 Analytics 30 4 8 18 27%
M13 Admin 25 12 6 7 60%
M14 UI/UX 20 10 4 6 60%
M15 AI 15 0 3 12 10%
M16 Livestream 10 0 4 6 20%
M17 Collaboration 10 1 0 9 10%
M18 Web3 10 0 0 10 0%
M19 Integrations 20 4 2 14 25%
M20 Native Apps 15 1 0 14 7%
M21 Gamification 15 0 2 13 7%
M22 Notifications 20 6 4 10 40%
M23 Security Adv. 15 10 2 3 73%
M24 Dev API 15 5 4 6 47%
TOTAL 600 211 96 297 43%

4. DÉVIATIONS ARCHITECTURALES

4.1 Tableau des Déviations

# Spécification ORIGIN Réalité Actuelle Type Impact Recommandation
D01 Chat Server Rust (veza-chat-server) — service Rust dédié avec Axum/SQLx pour WebSocket Migré dans le backend Go en v0.502 (ADR-002). Chat via WebSocket Go. Code Rust orphelin dans /veza-chat-server/ Pivot majeur Positif — réduit la complexité opérationnelle, 1 service en moins à déployer/maintenir Garder la décision. Supprimer le code orphelin Rust du monorepo
D02 Traefik comme API Gateway avec service discovery, load balancing, TLS automatique HAProxy comme reverse proxy avec blue-green deployments Substitution Neutre — HAProxy est production-grade, gère le blue-green ⚠️ Acceptable pour l'échelle actuelle. Migrer vers Traefik/Envoy si >10K users pour le service discovery
D03 Elasticsearch pour search avec fulltext, phonétique, facettes, autocomplete PostgreSQL pg_trgm + tsvector/tsquery Simplification Négatif à terme — ne scalera pas au-delà de ~10K tracks pour la recherche phonétique/sémantique Ajouter Elasticsearch quand le volume de données le justifie (>50K tracks). Critique pour Phase 5
D04 gRPC pour communication inter-services (Go ↔ Rust) REST/HTTP entre Go API et Rust stream server Simplification Neutre — REST plus simple à debug, suffisant pour le traffic actuel. gRPC nécessaire si latency inter-service critique ⚠️ Acceptable. Migrer vers gRPC uniquement si bottleneck mesuré
D05 JWT RS256 (asymétrique) pour multi-service JWT validation JWT HS256 (symétrique) partagé entre Go et Rust Risque sécurité Négatif — HS256 nécessite le secret partagé sur tous les services. RS256 permet validation sans partager le secret privé Migrer vers RS256 avant production multi-instance. Effort : ~2 jours
D06 CQRS (Command Query Responsibility Segregation) Pattern requête-réponse traditionnel (Handler→Service→Repository) Simplification Neutre — CQRS apporte de la complexité sans bénéfice clair à cette échelle Garder le pattern actuel. CQRS uniquement si read/write loads divergent significativement
D07 Stripe comme payment processor unique Hyperswitch (payment router open-source) qui supporte Stripe comme backend Pivot stratégique Positif — Hyperswitch offre plus de flexibilité (multi-provider), open-source, réduction de vendor lock-in Garder. Avantage compétitif — permet d'ajouter PayPal, crypto sans changer l'architecture
D08 Electron desktop app (Phase 7) Non développé Retard planifié Neutre — Phase 7 feature, pas urgente ⚠️ Reporter. Considérer Tauri (plus léger que Electron) quand nécessaire
D09 React Native mobile app (Phase 4-7) Non développé. PWA uniquement (usePWA hook) Fonctionalité manquante Négatif — PWA limité (pas d'accès App Store, audio background limité sur iOS) Décider : PWA-first ou app native ? Si market B2C audio, app native quasi-obligatoire
D10 Ansible pour déploiement automatisé Incus/LXD + Docker Compose, scripts bash Substitution Neutre — fonctionnel pour 1-2 serveurs. Ansible nécessaire si >3 serveurs ⚠️ Acceptable court terme. Automatiser avec Ansible/Terraform avant Phase 7
D11 pgBouncer pour connection pooling PostgreSQL GORM built-in connection pooling (MaxOpenConns, MaxIdleConns) Simplification Négatif à terme — GORM pooling suffisant pour <100 connexions. pgBouncer nécessaire pour >500 connexions ⚠️ Acceptable jusqu'à 5K users. Ajouter pgBouncer avant scaling Phase 7
D12 Kafka (optionnel dans ORIGIN) pour event streaming RabbitMQ uniquement Conforme Neutre — ORIGIN listait Kafka comme optionnel. RabbitMQ couvre les besoins actuels Garder RabbitMQ. Kafka uniquement si besoin de replay/event sourcing à grande échelle
D13 Argon2id pour hashing passwords (Rust services) bcrypt côté Go, Argon2 référencé dans ORIGIN mais pas implémenté Déviation mineure Neutre — bcrypt avec cost 12 est acceptable. Argon2id est le standard actuel mais bcrypt reste sûr ⚠️ Acceptable. Migrer vers Argon2id lors d'une refonte auth si opportunité
D14 HashiCorp Vault pour secrets management Variables d'environnement + fichiers .env Risque opérationnel Négatif — .env en dev acceptable, mais production nécessite un secret manager Ajouter un secret manager avant production (Vault, AWS Secrets Manager, ou Infisical)
D15 Redis Cluster pour haute disponibilité Redis standalone Simplification Neutre — suffisant pour <10K users. Cluster nécessaire pour HA ⚠️ Acceptable jusqu'à Phase 7. Prévoir Redis Sentinel ou Cluster avant

4.2 Bilan des Déviations

Catégorie Nombre Impact Global
Déviations positives (garder) 4 Simplification bienvenue
⚠️ Déviations acceptables (court terme) 6 À adresser avant scaling
Déviations à corriger 5 Blocantes pour les objectifs ORIGIN

4.3 Déviations Critiques à Corriger en Priorité

  1. D05 - JWT RS256 : migration HS256→RS256 avant déploiement multi-instance (~2j)
  2. D14 - Secrets Manager : Vault ou équivalent avant production (~3j)
  3. D03 - Elasticsearch : nécessaire pour les objectifs Phase 5 search (~2 semaines)
  4. D09 - Mobile App : décision stratégique PWA vs native requise
  5. D11 - pgBouncer : avant scaling au-delà de 5K users (~1j)

5. MÉTRIQUES DE QUALITÉ : ORIGIN vs ACTUEL

5.1 Code Quality Metrics

Métrique Objectif ORIGIN État Actuel Zone Écart
Test Coverage Global ≥ 80% (🟢), objectif 90% ~50% frontend (vitest threshold), Go non mesuré en CI 🔴 -30% minimum
Test Coverage Go ≥ 80% 306 fichiers test, pas de coverage % enforced 🟡 Non mesuré
Test Coverage Rust ≥ 80% Pas de CI coverage pour stream server 🔴 Non mesuré
Test Coverage Frontend ≥ 80% Threshold 50% vitest, stories Storybook pour composants 🔴 ~-30%
Complexité cyclomatique < 10 par fonction Non mesuré (pas de gocyclo/SonarQube configuré) Non mesuré
Duplication code < 3% Non mesuré (pas de jscpd/SonarQube) Non mesuré
TODO/FIXME/HACK < 50 ~150+ TODO, ~30 FIXME, ~5 HACK 🔴 +100 TODOs au-dessus du seuil
Linter errors 0 errors, < 5 warnings ESLint configuré, golangci-lint en CI 🟡 Partiellement conforme
Code churn < 5 changes/semaine/fichier Non mesuré Non mesuré

5.2 Performance Metrics

Métrique Objectif ORIGIN État Actuel Zone Écart
API Latency p95 < 100ms Non mesuré en production (pas de Prometheus actif) Non mesurable
API Latency p99 < 200ms Idem Non mesurable
DB Query p95 < 10ms Non mesuré (pas de pg_stat_statements) Non mesurable
Frontend FCP < 1.5s Non mesuré (pas de Lighthouse CI) Non mesurable
Frontend TTI < 3.5s Non mesuré Non mesurable
Lighthouse Performance ≥ 95 Non mesuré Non mesurable
Lighthouse Accessibility ≥ 100 Non mesuré Non mesurable
Bundle JS initial (gzip) < 200 KB Non mesuré (Vite build, code splitting actif) Non mesurable
Audio stream start < 500ms Non mesuré Non mesurable
Rebuffering rate < 0.5% Non mesuré Non mesurable
Throughput 10K req/s Non testé (k6 load tests existent mais pas de baseline) Non mesurable
Uptime 99.9% Non mesuré (pre-launch) N/A

Constat critique : Aucune métrique de performance n'est mesurée en continu. Les configs Prometheus/Grafana existent dans docker-compose mais ne sont pas activement utilisées pour du monitoring de production. Les k6 load tests existent mais n'ont pas produit de baseline documentée.

5.3 Security Metrics

Métrique Objectif ORIGIN État Actuel Zone Écart
Vulnérabilités critiques 0 2 (VEZA-SEC-001: JWT default Rust, VEZA-SEC-002: JWT mismatch) 🔴 -2
Vulnérabilités hautes 0 1 (VEZA-SEC-003: admin credentials hardcodées dans tests) 🟡 -1
Password hashing bcrypt cost ≥ 12 ou Argon2id bcrypt cost 12 🟢 Conforme
JWT expiration access 15 min 15 min configuré 🟢 Conforme
JWT expiration refresh 7 jours 7 jours configuré 🟢 Conforme
MFA admin/moderator Obligatoire Disponible mais pas obligatoire 🟡 Non enforced
Rate limiting Tous endpoints publics Login , global , per-endpoint , DDoS 🟡 WAF absent
Input validation serveur Obligatoire Go binding tags , validation service 🟢 Conforme
Security headers CSP, HSTS, X-Frame-Options, etc. HSTS , X-Frame-Options , CSP ⚠️ (unsafe-inline) 🟡 CSP à durcir
Secrets dans code Jamais JWT default "veza-stream-jwt-secret" dans config Rust 🔴 Violation
Audit logs Actions sensibles audit_log table, AuditLog handler 🟢 Conforme
GDPR right to erasure Obligatoire account_deletion_handler.go, data_export_service 🟢 Conforme
Dependency scanning Daily (npm audit, cargo audit, govulncheck) CI workflows incluent audit 🟢 Conforme
Penetration testing Trimestriel + après major releases Non réalisé 🔴 Non conforme
Bug bounty HackerOne ou Bugcrowd Non mis en place 🔴 Non conforme

5.4 Quality Gates (CI/CD)

Quality Gate ORIGIN Objectif Implémenté ? Détail
Tests pass (unit, integration) Bloquant GitHub Actions run tests
Coverage ≥ 80% Bloquant Seuil à 50% frontend, pas enforced Go/Rust
No linter errors Bloquant ⚠️ ESLint en CI, golangci-lint partiel
No security vulns (critical/high) Bloquant ⚠️ npm audit en CI, mais 2 vulns critiques non résolues
Code review 2+ reviewers Bloquant Solo developer, pas de reviewers
Pre-deployment smoke tests Bloquant Pas de smoke tests staging
Performance tests Bloquant k6 existe mais pas intégré en gate
SAST/DAST scan Bloquant ⚠️ SAST partiel (CI), pas de DAST
Rollback plan Bloquant ⚠️ Blue-green via HAProxy, pas de rollback automatique

Conformité Quality Gates : 1/9 pleinement conforme, 4/9 partiels, 4/9 non conformes

5.5 Bilan Qualité

Domaine Score ORIGIN requis Score Actuel Estimé Écart
Code Quality 8/10 5/10 -3
Performance 9/10 Inconnu (non mesuré) Non mesurable
Security 9/10 6/10 -3
UX/Accessibility 9/10 5/10 -4
Infrastructure 8/10 6/10 -2
Moyenne 8.6/10 5.5/10 -3.1

6. ROADMAP POUR ATTEINDRE LES OBJECTIFS ORIGIN

6.1 Stratégie Recommandée : « Phase 3.5 » avant Phase 4

Le projet ne peut pas sauter directement à Phase 5 pour rattraper le retard. La stratégie recommandée est de consolider ce qui existe (compléter P2-P3 à 100%), puis aborder Phase 4 avec un scope réduit et pragmatique.

Timeline Proposée (mars 2026 → mars 2027)

Mar-Avr 2026    Mai-Jul 2026      Août-Oct 2026       Nov 2026-Mar 2027
┌──────────┐   ┌──────────────┐   ┌──────────────┐   ┌──────────────────┐
│ PHASE 3.5│   │   PHASE 4R   │   │   PHASE 5R   │   │    PHASE 6R      │
│ Consolid.│   │  Social Lite │   │  Analytics + │   │  Premium +       │
│ Sécurité │   │  + Live      │   │  Search +    │   │  Dev API +       │
│ Tests    │   │  Streaming   │   │  Notifs      │   │  Scale           │
│ ~50 feat │   │  ~60 feat    │   │  ~70 feat    │   │  ~80 feat        │
└──────────┘   └──────────────┘   └──────────────┘   └──────────────────┘
   2 mois          3 mois             3 mois              5 mois

6.2 Phase 3.5 : Consolidation (Mars-Avril 2026) — 2 mois

Objectif : Corriger les violations ORIGIN critiques, compléter les features P2-P3 manquantes, établir les métriques de qualité.

Sprint A : Sécurité & Quality Gates (2 semaines)

Action Effort Priorité Impact
Corriger VEZA-SEC-001 : remplacer JWT secret par défaut Rust 0.5j P0 Critique
Corriger VEZA-SEC-002 : aligner JWT issuer/audience Go↔Rust 1j P0 Critique
Migrer JWT HS256 → RS256 (D05) 2j P0 Architecture
Configurer coverage CI/CD : Go go test -coverprofile + seuil 70% 1j P1 Qualité
Configurer coverage CI/CD : Rust cargo tarpaulin + seuil 60% 1j P1 Qualité
Monter threshold vitest de 50% à 70% 1j P1 Qualité
Ajouter Lighthouse CI dans GitHub Actions 1j P2 Performance
Activer Prometheus metrics dans docker-compose dev 0.5j P2 Monitoring

Sprint B : Features P2 Manquantes — Chat (2 semaines)

Action Effort Priorité Impact
Chat reactions (emoji) 2j P1 Engagement
Chat mentions (@user) 2j P1 UX
Chat typing indicator 1j P2 UX
Chat read receipts 2j P2 UX
Chat message search 2j P1 Fonctionnel

Sprint C : Features P3 Manquantes — Marketplace (2 semaines)

Action Effort Priorité Impact
Education frontend (compléter le module backend existant) 5j P1 Module entier
Licence history/tracking 2j P2 Business
Purchase refund flow 2j P1 Business
Email templates (purchase confirmation, welcome) 2j P1 UX

Sprint D : Debt & Cleanup (2 semaines)

Action Effort Priorité Impact
Supprimer code mort (veza-chat-server/, soundcloud/) 1j P2 Maintenabilité
Convertir 50 TODOs en issues GitHub 2j P2 Tracking
Uniformiser error handling Go (RespondWithAppError partout) 3j P1 Qualité
Ajouter secret manager (Infisical ou Vault) 2j P0 Sécurité
Durcir CSP (supprimer unsafe-inline) 1j P1 Sécurité

Total Phase 3.5 : ~50 actions, 2 mois, 1-2 développeurs

6.3 Phase 4R : Social & Live Streaming (Mai-Juillet 2026) — 3 mois

Scope réduit : pas de DAW collaboration (trop complexe), pas de Web3, pas de gamification.

Module Features à implémenter Effort Priorité
Social Posts Create/edit/delete post, like, comment, repost, hashtags, explore 3 semaines P1
Groups Join/leave, roles, member list, group feed 2 semaines P1
Live Streaming Go live flow, live chat intégré, donations, VOD replay 4 semaines P1
Notifications push Web push, notification grouping, email follower/comment 2 semaines P1
Chat enrichi GIFs (Giphy), image sharing, threads UI 2 semaines P2

Total Phase 4R : ~60 features, 3 mois, 2-3 développeurs

6.4 Phase 5R : Analytics & Search (Août-Octobre 2026) — 3 mois

Module Features à implémenter Effort Priorité
Elasticsearch Setup, indexation tracks/users/playlists, fulltext + phonétique 3 semaines P0
Search avancé Filtres multi-critères, autocomplete intelligent, spelling correction 2 semaines P1
Creator Dashboard Plays over time, demographics, device breakdown, export CSV 3 semaines P1
Admin Dashboard DAU/MAU, retention, revenue, user growth charts 2 semaines P1
Notifications email Templates complets : welcome, follower, purchase, sale, newsletter 2 semaines P2
UI/UX WCAG AA compliance, keyboard nav complète, screen reader 2 semaines P2

Total Phase 5R : ~70 features, 3 mois, 2-3 développeurs

6.5 Phase 6R : Premium & Scale (Novembre 2026-Mars 2027) — 5 mois

Module Features à implémenter Effort Priorité
Premium tiers Free/Premium/Pro, Stripe billing, trial, upgrade/downgrade 4 semaines P0
Developer API GraphQL, SDK JS, webhook improvements, sandbox 3 semaines P1
Admin avancé Moderation queue UI, copyright strikes, appeal system 3 semaines P1
Cloud Storage Nextcloud integration ou S3 sync avancé 2 semaines P2
Infrastructure pgBouncer, Redis Sentinel, Terraform/Ansible, auto-scaling 4 semaines P1
Mobile Décision PWA-enhanced ou React Native app 4 semaines P1
BPM/Key detection Intégrer librosa ou essentia pour détection automatique 2 semaines P2

Total Phase 6R : ~80 features, 5 mois, 2-4 développeurs

6.6 Estimation Effort Total

Phase Durée Features Développeurs Effort (homme-mois)
Phase 3.5 2 mois ~50 1-2 3
Phase 4R 3 mois ~60 2-3 7
Phase 5R 3 mois ~70 2-3 7
Phase 6R 5 mois ~80 2-4 12
Total 13 mois ~260 ~29 homme-mois

Avec ce plan révisé, le projet atteindrait ~490 features sur 600 d'ici mars 2027, soit 82% de complétion ORIGIN.


7. RECOMMANDATIONS : GARDER, MODIFIER, OU ABANDONNER

7.1 Objectifs ORIGIN à GARDER tels quels

Objectif Raison
Auth complète (F001-F030) Fondation critique, déjà à 73%
Profils (F031-F065) Déjà à 89%, terminer les derniers %
Streaming audio (F106-F150) Core product, déjà à 67%
Marketplace (F226-F275) Source de revenue, à 54%
Security (F571-F585) Non négociable, déjà à 73%
Notifications (F551-F570) Essentiel pour rétention
Admin (F411-F435) Nécessaire pour opérations
Cloud storage (F331-F350) Différenciateur produit
Search fulltext (F351-F370) Critique pour UX
Analytics (F381-F410) Nécessaire pour créateurs et vendeurs
Developer API (F586-F600) Permet écosystème
UI/UX accessibilité (F436-F455) Obligation légale (WCAG), différenciateur
CI/CD + Quality Gates Fondation technique non négociable
Test coverage 80% Objectif réaliste, protège contre régressions

7.2 Objectifs ORIGIN à MODIFIER

Objectif Original Modification Proposée Raison
600 features en 24 mois ~490 features en 25 mois (mars 2027) Scope irréaliste pour 1-2 développeurs. 82% est un excellent résultat
Chat Rust (veza-chat-server) Chat Go (tel qu'implémenté) ADR-002 validé, simplification positive
Stripe exclusif Hyperswitch (tel qu'implémenté) Meilleure flexibilité, open-source
Elasticsearch Phase 5 Elasticsearch Phase 5R (août 2026) Reporter mais ne pas abandonner — critique pour scale
Traefik HAProxy puis migration si besoin Fonctionnel, migrer uniquement si nécessaire
React Native mobile (Phase 4) PWA-enhanced court terme, natif Phase 6R Économiser des mois de dev, réévaluer quand MAU > 5K
CQRS Pattern request-response Complexité injustifiée à cette échelle
gRPC inter-service REST puis migration si bottleneck mesuré Pragmatisme
Gamification (F536-F550) Reporter à Phase 7+ Pas critique pour le core product, gamification quand base users établie
Live Streaming (10 features complètes) Live Streaming Lite (5 features) Go live, chat, tips, VOD — le reste en Phase 6R

7.3 Objectifs ORIGIN à ABANDONNER

Objectif Raison d'Abandon Alternative
Web3/Blockchain (F491-F500) Market crypto incertain, complexité juridique, pas de demande marché prouvée Surveiller le marché, réintroduire si demande utilisateur
VR/AR (E001-E020) Marché niche, coût de développement élevé, pas de ROI prévisible Aucune — technologie prématurée pour une plateforme audio
Electron desktop app Tauri serait meilleur si besoin, mais PWA couvre 95% des cas PWA avec offline mode
Voice synthesis AI (F468) Risques éthiques et juridiques (deepfakes audio) Focus sur AI utile : BPM/key detection, auto-tags
AI mixing assistant (F470) Trop ambitieux, nécessite ML expertise dédiée Partenariat avec service tiers (LANDR, iZotope)
DAO governance Hors scope produit audio, complexité juridique Gouvernance classique (advisory board)
NFT minting Marché en déclin, risque réputationnel Licensing traditionnel (déjà implémenté)
Kafka RabbitMQ suffit, pas de besoin event sourcing Garder RabbitMQ
SOC2 certification Coût et effort disproportionnés pour une startup pre-revenue Focus GDPR (obligatoire) + bonnes pratiques sécurité

7.4 Matrice de Décision Finale

Catégorie Features Action
Garder ~430 features (72%) Continuer le développement selon la roadmap
⚠️ Modifier ~70 features (12%) Ajuster le scope, l'ordre, ou l'approche
Abandonner ~100 features (17%) Retirer du backlog, documenter la décision

8. VIOLATIONS CRITIQUES ORIGIN ET PLAN DE CORRECTION

8.1 Violations des Règles Immuables ORIGIN

# Règle ORIGIN Violation Correction Effort Deadline
V01 Coverage ≥ 80% toutes phases Seuil à 50% frontend, non mesuré Go/Rust Configurer CI coverage, monter progressivement : 60% → 70% → 80% 5j Fin avril 2026
V02 0 vulnérabilités critiques 2 critiques (JWT) Corriger VEZA-SEC-001 et VEZA-SEC-002 2j Mi-mars 2026
V03 Pas de feature creep Features P6-P7 implémentées avant P3-P4 complètes Consolider P2-P3 avant d'avancer (Phase 3.5) Plan ci-dessus
V04 Phase complète à 100% avant suivante P3 à 65%, P4 démarrée Compléter P3 dans Phase 3.5 4 sem Fin avril 2026
V05 Security audit externe avant P1, P3, P5, P7 Aucun audit externe réalisé Commander un pentest externe 2 sem + budget Avant Phase 4R
V06 Code review 2+ reviewers Solo developer Recruter reviewers (communauté, freelance, AI review) Continu
V07 Documentation API à jour Swagger existe mais pas synchronisé automatiquement Intégrer swag generate dans CI 1j Fin mars 2026

8.2 Priorités de Correction

URGENT (< 2 semaines)
├── V02 : Corriger les 2 vulns JWT critiques
├── V07 : Synchroniser Swagger
└── Nettoyer secrets hardcodés

IMPORTANT (< 2 mois)
├── V01 : Coverage CI/CD configurée et progressive
├── V04 : Compléter Phase 3 features manquantes
├── V03 : Consolider avant d'avancer
└── V05 : Commander pentest externe

NÉCESSAIRE (< 6 mois)
├── V06 : Trouver des reviewers
├── Coverage à 80%
└── Lighthouse CI + performance baseline

CONCLUSION

Le projet Veza a construit une base technique solide avec une architecture clean, un monorepo bien organisé, et des fondations fonctionnelles (auth, streaming, marketplace, infrastructure CI/CD). Cependant, il accuse un retard de ~6 mois sur le plan ORIGIN, principalement dû à l'ambition du scope (600 features / 24 mois) face aux ressources disponibles.

Le plan ORIGIN reste un excellent guide directeur, mais il doit être adapté à la réalité :

  1. Réduire le scope de 600 à ~490 features (abandonner Web3, VR/AR, certaines features AI)
  2. Consolider avant d'avancer (Phase 3.5 de stabilisation)
  3. Corriger immédiatement les 2 vulnérabilités critiques JWT
  4. Établir les métriques de qualité (coverage, performance, monitoring)
  5. Suivre la roadmap révisée pour atteindre 82% de complétion d'ici mars 2027

Le projet est techniquement viable et les choix architecturaux (pivots Chat Go, Hyperswitch, simplification gRPC→REST) sont pragmatiques et justifiés. L'enjeu principal n'est pas technique mais de priorisation : livrer les features qui génèrent le plus de valeur business en premier (marketplace, premium, analytics) tout en maintenant la qualité.


Document généré le 4 mars 2026 Basé sur : Audit Technique VEZA 2026-03-04 + Documentation ORIGIN Méthodologie : Analyse statique du code, cross-référencement F001-F600 avec le codebase, comparaison métriques ORIGIN vs mesures actuelles