Skip to content
Weave templates

Microservices by domain (grouped)

Identity / Catalog / Orders / Payments domains as containers — services + DBs inside each.

Template previewWeave
Rendering…

Make it your own.

{
  "nodes": [
    { "id":"id","type":"container","label":"Identity","x":40,"y":40,"width":280,"height":340,"fill":"rgba(219,234,254,0.4)","stroke":"#2563eb" },
    { "id":"cat","type":"container","label":"Catalog","x":360,"y":40,"width":280,"height":340,"fill":"rgba(237,233,254,0.4)","stroke":"#6d28d9" },
    { "id":"or","type":"container","label":"Orders","x":680,"y":40,"width":280,"height":340,"fill":"rgba(254,243,199,0.4)","stroke":"#a16207" },
    { "id":"pa","type":"container","label":"Payments","x":1000,"y":40,"width":280,"height":340,"fill":"rgba(220,252,231,0.4)","stroke":"#15803d" },
    { "id":"is","type":"rect","label":"Auth API","x":80,"y":100,"fill":"#dbeafe","stroke":"#2563eb" },
    { "id":"iw","type":"rect","label":"Token worker","x":80,"y":200,"fill":"#dbeafe","stroke":"#2563eb" },
    { "id":"idb","type":"cylinder","label":"Users DB","x":80,"y":300,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"cs","type":"rect","label":"Catalog API","x":400,"y":100,"fill":"#ede9fe","stroke":"#6d28d9" },
    { "id":"ci","type":"rect","label":"Indexer","x":400,"y":200,"fill":"#ede9fe","stroke":"#6d28d9" },
    { "id":"cdb","type":"cylinder","label":"Products DB","x":400,"y":300,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"os","type":"rect","label":"Orders API","x":720,"y":100,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"ow","type":"rect","label":"Fulfilment","x":720,"y":200,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"odb","type":"cylinder","label":"Orders DB","x":720,"y":300,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"ps","type":"rect","label":"Payments API","x":1040,"y":100,"fill":"#dcfce7","stroke":"#15803d" },
    { "id":"pw","type":"rect","label":"Webhook listener","x":1040,"y":200,"fill":"#dcfce7","stroke":"#15803d" },
    { "id":"pdb","type":"cylinder","label":"Ledger","x":1040,"y":300,"fill":"#fef3c7","stroke":"#a16207" },
    { "id":"bus","type":"wave","label":"Event bus","x":480,"y":420,"fill":"#bae6fd","stroke":"#0369a1","motion":"pulse" }
  ],
  "edges": [
    { "id":"e1","source":"is","target":"idb" },
    { "id":"e2","source":"iw","target":"idb" },
    { "id":"e3","source":"cs","target":"cdb" },
    { "id":"e4","source":"ci","target":"cdb" },
    { "id":"e5","source":"os","target":"odb" },
    { "id":"e6","source":"ow","target":"odb" },
    { "id":"e7","source":"ps","target":"pdb" },
    { "id":"e8","source":"pw","target":"pdb" },
    { "id":"e9","source":"os","target":"bus","animated":true,"className":"lf-flow-edge" },
    { "id":"e10","source":"ps","target":"bus","animated":true,"className":"lf-flow-edge" },
    { "id":"e11","source":"bus","target":"cs","animated":true,"className":"lf-flow-edge" },
    { "id":"e12","source":"bus","target":"is","animated":true,"className":"lf-flow-edge" }
  ]
}