{"nodes":[{"data":{"id":"identity","label":"identity","kind":"service","port":8001,"subdomain":"identity","public_url":"https://identity.develaugment.de","description":"User accounts, sessions, JWT issuer, verifiable credentials."}},{"data":{"id":"discovery","label":"discovery","kind":"service","port":8002,"subdomain":"discovery","public_url":"https://discovery.develaugment.de","description":"Provider profiles + search (categories, geo, ranking)."}},{"data":{"id":"contract","label":"contract","kind":"service","port":8003,"subdomain":"contract","public_url":"https://contract.develaugment.de","description":"Service requests, offers, contracts, status machine."}},{"data":{"id":"payment","label":"payment","kind":"service","port":8004,"subdomain":"payment","public_url":"https://payment.develaugment.de","description":"Escrow + invoices. Calls contract for release-checks."}},{"data":{"id":"reviews","label":"reviews","kind":"service","port":8005,"subdomain":"reviews","public_url":"https://reviews.develaugment.de","description":"Bewertungen mit JWT-signierten Portable Bundles. Calls contract."}},{"data":{"id":"messaging","label":"messaging","kind":"service","port":8006,"subdomain":"messaging","public_url":"https://messaging.develaugment.de","description":"E2E-stub messaging threads (opaque ciphertext)."}},{"data":{"id":"dispute","label":"dispute","kind":"service","port":8007,"subdomain":"dispute","public_url":"https://dispute.develaugment.de","description":"Streitfall-Tickets, Eskalationsleiter, Mediator-Stub. Calls contract."}},{"data":{"id":"orchestrator","label":"orchestrator","kind":"orchestrator","port":8000,"subdomain":"app","public_url":"https://app.develaugment.de","description":"Stateless BFF + HTML UI. Fan-out to all 7 backing services."}},{"data":{"id":"inspector","label":"inspector","kind":"inspector","port":8009,"subdomain":"graph","public_url":"https://graph.develaugment.de","description":"Service graph + health dashboard (this UI)."}},{"data":{"id":"postgres","label":"postgres","kind":"db","description":"Shared Postgres instance, one schema per service."}},{"data":{"id":"external_user","label":"external user","kind":"user","description":"Browser visitor — humans hitting the public ingresses."}}],"edges":[{"data":{"id":"e0","source":"payment","target":"contract","label":"GET /contracts/{id} (release-check + invoice party-check)","kind":"http"}},{"data":{"id":"e1","source":"reviews","target":"contract","label":"GET /contracts/{id} (verify status=closed + author is party)","kind":"http"}},{"data":{"id":"e2","source":"dispute","target":"contract","label":"GET /contracts/{id} (verify exists + party for ticket actions)","kind":"http"}},{"data":{"id":"e3","source":"orchestrator","target":"identity","label":"POST /users, POST /sessions, GET /me, GET/PUT /users/{id}/profile","kind":"http"}},{"data":{"id":"e4","source":"orchestrator","target":"discovery","label":"GET /search, GET /categories, GET/PUT /providers/{id}","kind":"http"}},{"data":{"id":"e5","source":"orchestrator","target":"contract","label":"POST /requests, POST /offers/{id}/accept, POST /contracts/{id}/{deliver,accept}, GET /contracts/{id}","kind":"http"}},{"data":{"id":"e6","source":"orchestrator","target":"payment","label":"POST /escrow, POST /escrow/{id}/release","kind":"http"}},{"data":{"id":"e7","source":"orchestrator","target":"reviews","label":"POST /reviews, GET /users/{id}/reviews","kind":"http"}},{"data":{"id":"e8","source":"orchestrator","target":"messaging","label":"POST /threads, POST /threads/{id}/messages","kind":"http"}},{"data":{"id":"e9","source":"orchestrator","target":"dispute","label":"(env-wired, optional UI) POST /tickets, ...","kind":"http"}},{"data":{"id":"e10","source":"identity","target":"postgres","label":"schema=identity","kind":"db"}},{"data":{"id":"e11","source":"discovery","target":"postgres","label":"schema=discovery","kind":"db"}},{"data":{"id":"e12","source":"contract","target":"postgres","label":"schema=contract","kind":"db"}},{"data":{"id":"e13","source":"payment","target":"postgres","label":"schema=payment","kind":"db"}},{"data":{"id":"e14","source":"reviews","target":"postgres","label":"schema=reviews","kind":"db"}},{"data":{"id":"e15","source":"messaging","target":"postgres","label":"schema=messaging","kind":"db"}},{"data":{"id":"e16","source":"dispute","target":"postgres","label":"schema=dispute","kind":"db"}},{"data":{"id":"e17","source":"external_user","target":"orchestrator","label":"HTTPS app.develaugment.de (HTML UI, session cookie)","kind":"user"}},{"data":{"id":"e18","source":"external_user","target":"identity","label":"HTTPS identity.develaugment.de (signup/login)","kind":"user"}},{"data":{"id":"e19","source":"external_user","target":"inspector","label":"HTTPS graph.develaugment.de (this view)","kind":"user"}}]}