Invoice Service
The invoice service provides the bounded context Invoice.
It is responsible for managing invoices of orders.
Domain Model
info
Imported entities from other bounded contexts are marked with a dashed border.
API
The service provides a GraphQL API, which is documented in the GraphQL API documentation (TODO).
Technology Stack
- Language: Rust
- Framework: axum
- GraphQL Library: async_graphql
- Database: MongoDB
Events
This section lists events that are defined or used by the invoice service.
Published Events
invoice/invoice/created
This event is published when an invoice for an order is created.
{
order: Order,
invoice: Invoice,
}
Subscribed Events
- discount/order/validation-succeeded: Triggers this service to create an invoice and emit following event:
invoice/invoice/created - address/vendor-address/created: Used to obtain vendor address.
- user/user/created: Used to synchronize user addresses on users.
- address/user-address/created: Used to obtain user address.
- address/user-address/archived: Used to obtain user address.