=== target/spring-modulith-docs/components.puml ===
@startuml
title <size:24>Order Fulfillment</size>

set separator none
top to bottom direction

<style>
  root {
    BackgroundColor: #ffffff
    FontColor: #444444
  }
</style>

!include <C4/C4>
!include <C4/C4_Context>
!include <C4/C4_Component>

System_Boundary("OrderFulfillment_boundary", "Order Fulfillment", $tags="") {
  Container_Boundary("OrderFulfillment.OrderFulfillment_boundary", "Order Fulfillment", $tags="") {
    Component(OrderFulfillment.OrderFulfillment.Order, "Order", $techn="Module", $descr="", $tags="", $link="")
    Component(OrderFulfillment.OrderFulfillment.Inventory, "Inventory", $techn="Module", $descr="", $tags="", $link="")
    Component(OrderFulfillment.OrderFulfillment.Shipping, "Shipping", $techn="Module", $descr="", $tags="", $link="")
    Component(OrderFulfillment.OrderFulfillment.Notification, "Notification", $techn="Module", $descr="", $tags="", $link="")
  }

}

Rel(OrderFulfillment.OrderFulfillment.Notification, OrderFulfillment.OrderFulfillment.Order, "listens to", $techn="", $tags="", $link="")
Rel(OrderFulfillment.OrderFulfillment.Shipping, OrderFulfillment.OrderFulfillment.Inventory, "listens to", $techn="", $tags="", $link="")
Rel(OrderFulfillment.OrderFulfillment.Inventory, OrderFulfillment.OrderFulfillment.Order, "listens to", $techn="", $tags="", $link="")
Rel(OrderFulfillment.OrderFulfillment.Notification, OrderFulfillment.OrderFulfillment.Shipping, "listens to", $techn="", $tags="", $link="")

SHOW_LEGEND(true)
hide stereotypes
@enduml
=== target/spring-modulith-docs/module-order.adoc ===
[%autowidth.stretch, cols="h,a"]
|===
|Base package
|`com.ankurm.modulithdemo.order`
|Spring components
|_Controllers_

* `c.a.m.o.OrderController`

_Services_

* `c.a.m.o.OrderManagement`
|===

=== target/spring-modulith-docs/module-inventory.adoc ===
[%autowidth.stretch, cols="h,a"]
|===
|Base package
|`com.ankurm.modulithdemo.inventory`
|Spring components
|_Services_

* `c.a.m.i.InventoryManagement`
|Events listened to
|* `c.a.m.o.OrderPlaced` (async) 
|===

=== target/spring-modulith-docs/module-shipping.adoc ===
[%autowidth.stretch, cols="h,a"]
|===
|Base package
|`com.ankurm.modulithdemo.shipping`
|Spring components
|_Services_

* `c.a.m.s.ShippingManagement`
|Events listened to
|* `c.a.m.i.StockReserved` (async) 
|===

=== target/spring-modulith-docs/module-notification.adoc ===
[%autowidth.stretch, cols="h,a"]
|===
|Base package
|`com.ankurm.modulithdemo.notification`
|Spring components
|_Services_

* `c.a.m.n.NotificationManagement`
|Events listened to
|* `c.a.m.s.ShipmentScheduled` (async) 
* `c.a.m.o.OrderPlaced` (async) 
|===
