Lebensmittel-E-Commerce-Microservicesystem Entwicklungspraxis
Ueberblick
Dieses Praxisprojekt erfordert die Umsetzung eines echten PRD von Grund auf: Ein Lebensmittel-E-Commerce-Microservicesystem. Im Gegensatz zu frueheren Single-Service-Projekten ist das Backend hier in mehrere unabhaengige Services nach Geschaeftsbereich aufgeteilt, die ueber ein API-Gateway einheitlich nach aussen kommunizieren. Du lernst, Service-Grenzen zu entwerfen und datenuebergreifende Konsistenzprobleme zwischen Services zu behandeln.
Vorkenntnisse
- Frontend-Design und Komponentenbibliotheken (UI-Design, Moderne Komponentenbibliothek)
- Backend-API-Design und Entwicklung (API-Code schreiben)
- Datenbankgrundlagen und Supabase (Von der Datenbank zu Supabase)
- Git-Workflow und Bereitstellung (Git und GitHub, Web-Anwendungen bereitstellen)
Lernziele
- PRD lesen und Entwicklungsaufgabenliste fuer ein Microservicesystem extrahieren
- Service-Grenzen nach Geschaeftsbereichen aufteilen (Auth, Katalog, Bestand, Bestellung)
- API-Gateway-Routing entwerfen und implementieren
- Uebergreifende Probleme wie Bestandsabbuchung und Bestellkonsistenz behandeln
- End-to-End-Tests abschliessen und einen demonstrierbaren Microservice-Prototyp liefern
Projektuebersicht
| Subsystem | Verantwortung |
|---|---|
| Benutzerportal | Produkte durchsuchen, bestellen, Bestellungen einsehen |
| Admin-Portal | Produktverwaltung, Bestandsverwaltung, Bestellverwaltung |
Backend-Services:
| Service | Verantwortung |
|---|---|
| API Gateway | Einheitlicher Einstieg, Routing, Auth-Pruefung |
| Auth Service | Benutzerregistrierung, Login, JWT-Ausgabe |
| Catalog Service | Produktinformationsverwaltung |
| Inventory Service | Bestandsmengenverwaltung |
| Order Service | Bestellerstellung, Statusverwaltung |
PRD-Zugang
Teil 1: Anforderungsanalyse
1.1 PRD lesen
- Wie werden Services aufgeteilt? Verantwortungsgrenzen jedes Services?
- Welche Seiten haben Benutzer- und Admin-Portal?
- Bestandsabbuchungsstrategie nach Bestellung? Erfolg / Fehler / Timeout?
- Welche komplexen Faehigkeiten (verteilte Transaktionen, Nachrichtenwarteschlangen) zunaechst weglassen?
WARNING
Beginne nicht mit dem Code, wenn diese Fragen keine klaren Antworten haben.
1.2 Systemarchitektur bestaetigen
mermaid
flowchart TD
prd["PRD"] --> fe["Frontend-Seiten"]
fe --> gw["API Gateway"]
gw --> auth["Auth Service"]
gw --> catalog["Catalog Service"]
gw --> inventory["Inventory Service"]
gw --> order["Order Service"]
order --> inventoryTeil 2: Projektgeruest erstellen
2.1 Projektstruktur generieren
text
Bitte generiere basierend auf dem aktuellen PRD ein Projektgeruest fuer ein Lebensmittel-E-Commerce-Microservicesystem.
Anforderungen:
1. Frontend Benutzer- und Admin-Geruest generieren
2. Fuenf Verzeichnisse: api-gateway, auth-service, catalog-service, inventory-service, order-service
3. Jeder Service zunaechst nur minimal lauffaehigen Einstiegspunkt
4. Keine echte Datenbank oder Zahlung2.2 Projektstruktur ueberpruefen
- [ ] Fuenf Service-Verzeichnisse klar strukturiert
- [ ] API Gateway startet und leitet Anfragen weiter
- [ ] Gesundheitspruefung jedes Services erreichbar
- [ ] Frontend Benutzer- und Admin-Seiten zugaenglich
Teil 3: Iterative Entwicklung
3.1 Modulweise vorgehen
- API Gateway: Routing-Konfiguration, JWT-Pruefung-Middleware
- Auth Service: Registrierung, Login, JWT-Ausgabe
- Catalog Service: Produkt-CRUD, Listenabfrage
- Inventory Service: Bestandsabfrage, Bestandsabbuchung
- Order Service: Bestellerstellung, Statusuebergaenge, Bestandskopplung
- Admin-Portal: Produkt-, Bestands- und Bestellverwaltung
3.2 Modul-Selbstpruefung
| Pruefpunkt | Verifikationsmethode |
|---|---|
| Gateway-Routing | Services ueber Gateway korrekt erreichbar |
| Berechtigungsisolierung | Benutzer- und Admin-APIs getrennt |
| Datenkonsistenz | Produkt- und Bestandsdaten synchron |
| Transaktionsabschluss | Bestandsabbuchung und Bestellstatus nach Bestellung konsistent |
| Fehlerbehandlung | Bestand unzureichend oder Timeout: Kompensationsmechanismus |
Teil 4: Test und Bereitstellung
4.1 End-to-End-Tests
- Produkte durchsuchen > In den Warenkorb > Bestellen > Bestellung einsehen
- Admin > Produkt hinzufuegen > Bestand aktualisieren > Bestellungen anzeigen
Liefergegenstaende
- [ ] Online-Demo-Link
- [ ] Quellcode-Repository (mit README)
- [ ] PRD-Dokument
- [ ] Kernseiten-Screenshots
- [ ] 60-Sekunden-Demo-Video
Bewertungskriterien
| Dimension | Grundanforderung | Erweiterte Anforderung |
|---|---|---|
| PRD-Alignment | Seiten, Funktionen, Service-Aufteilung gemaess PRD | Service-Aufteilungsgruende klar erklaert |
| Produktabschluss | Durchsuchen > Bestellen > Bestandsabbuchung > Bestellung lauffaehig | Kompensationsmechanismus bei Timeout oder unzureichendem Bestand |
| Service-Architektur | Jeder Service unabhaengig startbar, ueber Gateway erreichbar | Fehlerbehandlung und Retry bei Service-Kommunikation |
| Admin-Faehigkeit | Produkt-, Bestands- und Bestellverwaltung bedienbar | Admin mit Datenstatistiken |
| Engineering | Frontend, Gateway, Services, Datenbank verbunden | Docker Compose oder aehnliche Orchestrierung |