├── .gitattributes ├── .gitignore ├── Chapter02 ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum └── stores │ ├── features │ └── create_store.feature │ └── stores_test.go ├── Chapter03 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_repository.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── basket_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ └── order_item.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── shopping_list_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 1_create_monolith_db.sh │ │ ├── 2_create_basket_schema.sh │ │ ├── 3_create_customers_schema.sh │ │ ├── 4_create_depot_schema.sh │ │ ├── 5_create_ordering_schema.sh │ │ ├── 6_create_payments_schema.sh │ │ ├── 7_create_stores_schema.sh │ │ └── 8_load_data.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── adding_items.plantuml │ │ ├── create_order_with_domain_events.plantuml │ │ └── create_order_with_domain_events.png │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── entity.go │ │ ├── event.go │ │ └── event_dispatcher.go │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── rpc │ │ └── config.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ └── models │ │ │ └── customer.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ └── ready_order.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── invoice.go │ │ │ ├── invoice_repository.go │ │ │ ├── item.go │ │ │ ├── notification_repository.go │ │ │ ├── order.go │ │ │ ├── order_repository.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── notification_repository.go │ │ │ ├── payment_repository.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── order_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ ├── order_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ ├── paymentspb │ │ │ ├── api.swagger.json │ │ │ └── messages.swagger.json │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ └── remove_product.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── participating_store_repository.go │ │ ├── product.go │ │ ├── product_repository.go │ │ ├── store.go │ │ └── store_repository.go │ ├── grpc │ │ └── server.go │ ├── logging │ │ └── application.go │ ├── postgres │ │ ├── participating_store_repository.go │ │ ├── product_repository.go │ │ └── store_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── messages.pb.go │ └── messages.proto ├── Chapter04 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── domain_event_handlers.go │ │ │ └── order_handlers.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── domain_event_handlers.go │ │ ├── postgres │ │ │ └── basket_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── domain_event_handlers.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ └── order_item.go │ │ │ ├── domain_event_handlers.go │ │ │ ├── order_handlers.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── domain_event_handlers.go │ │ ├── postgres │ │ │ └── shopping_list_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 1_create_monolith_db.sh │ │ ├── 2_create_basket_schema.sh │ │ ├── 3_create_customers_schema.sh │ │ ├── 4_create_depot_schema.sh │ │ ├── 5_create_ordering_schema.sh │ │ ├── 6_create_payments_schema.sh │ │ ├── 7_create_stores_schema.sh │ │ └── 8_load_data.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── create_order_with_domain_events.plantuml │ │ └── create_order_with_domain_events.png │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── entity.go │ │ ├── event.go │ │ └── event_dispatcher.go │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── rpc │ │ └── config.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ └── models │ │ │ └── customer.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ └── ready_order.go │ │ │ ├── domain_event_handlers.go │ │ │ ├── invoice_handlers.go │ │ │ ├── notification_handlers.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── invoice.go │ │ │ ├── invoice_repository.go │ │ │ ├── item.go │ │ │ ├── notification_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── notification_repository.go │ │ │ ├── payment_repository.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── invoices.go │ │ │ └── notifications.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── domain_event_handlers.go │ │ ├── postgres │ │ │ └── order_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ ├── order_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ ├── paymentspb │ │ │ ├── api.swagger.json │ │ │ └── messages.swagger.json │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ └── remove_product.go │ │ ├── domain_event_handlers.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── participating_store_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── store.go │ │ ├── store_events.go │ │ └── store_repository.go │ ├── grpc │ │ └── server.go │ ├── logging │ │ └── application.go │ ├── postgres │ │ ├── participating_store_repository.go │ │ ├── product_repository.go │ │ └── store_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── messages.pb.go │ └── messages.proto ├── Chapter05 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── order_handlers.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ └── order_item.go │ │ │ ├── order_handlers.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── shopping_list_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 1_create_monolith_db.sh │ │ ├── 2_create_basket_schema.sh │ │ ├── 3_create_customers_schema.sh │ │ ├── 4_create_depot_schema.sh │ │ ├── 5_create_ordering_schema.sh │ │ ├── 6_create_payments_schema.sh │ │ ├── 7_create_stores_schema.sh │ │ └── 8_load_data.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── create_order_with_domain_events.plantuml │ │ └── create_order_with_domain_events.png │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── event_options.go │ │ └── metadata.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ └── snapshot.go │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── event_store.go │ │ └── snapshot_store.go │ ├── registry │ │ ├── build_options.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ └── models │ │ │ └── customer.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ └── ready_order.go │ │ │ ├── invoice_handlers.go │ │ │ ├── notification_handlers.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── item.go │ │ │ ├── notification_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── notification_repository.go │ │ │ ├── payment_repository.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── invoices.go │ │ │ └── notifications.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ ├── order_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ ├── paymentspb │ │ │ ├── api.swagger.json │ │ │ └── messages.swagger.json │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── catalog_handlers.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── decrease_product_price.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ ├── increase_product_price.go │ │ │ ├── rebrand_product.go │ │ │ ├── rebrand_store.go │ │ │ └── remove_product.go │ │ ├── mall_handlers.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── catalog_repository.go │ │ ├── mall_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── product_snapshots.go │ │ ├── store.go │ │ ├── store_events.go │ │ ├── store_repository.go │ │ └── store_snapshots.go │ ├── grpc │ │ └── server.go │ ├── handlers │ │ ├── catalog.go │ │ └── mall.go │ ├── logging │ │ ├── application.go │ │ └── event_handlers.go │ ├── postgres │ │ ├── catalog_repository.go │ │ └── mall_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── messages.pb.go │ └── messages.proto ├── Chapter06 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── order_handlers.go │ │ │ ├── product_handlers.go │ │ │ └── store_handlers.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── orders.go │ │ │ ├── products.go │ │ │ └── stores.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── domain_event_handlers.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ └── order_item.go │ │ │ ├── order_handlers.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── shopping_list_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 1_create_monolith_db.sh │ │ ├── 2_create_basket_schema.sh │ │ ├── 3_create_customers_schema.sh │ │ ├── 4_create_depot_schema.sh │ │ ├── 5_create_ordering_schema.sh │ │ ├── 6_create_payments_schema.sh │ │ ├── 7_create_stores_schema.sh │ │ └── 8_load_data.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── read_after_write.png │ │ └── read_after_write.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── event_messages.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── raw_message.go │ │ └── subscriber_config.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── event_options.go │ │ └── metadata.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ └── stream_message.proto │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── aggregate_event.go │ │ ├── event_store.go │ │ └── snapshot_store.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ └── models │ │ │ └── customer.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ └── ready_order.go │ │ │ ├── invoice_handlers.go │ │ │ ├── notification_handlers.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── item.go │ │ │ ├── notification_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── invoice_repository.go │ │ │ ├── notification_repository.go │ │ │ ├── payment_repository.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── invoices.go │ │ │ └── notifications.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ ├── order_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ └── server.go │ │ ├── logging │ │ │ └── application.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ ├── paymentspb │ │ │ ├── api.swagger.json │ │ │ └── messages.swagger.json │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.pb.go │ │ └── messages.proto └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── catalog_handlers.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── decrease_product_price.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ ├── increase_product_price.go │ │ │ ├── rebrand_product.go │ │ │ ├── rebrand_store.go │ │ │ └── remove_product.go │ │ ├── integration_event_handlers.go │ │ ├── mall_handlers.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── catalog_repository.go │ │ ├── mall_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── product_snapshots.go │ │ ├── store.go │ │ ├── store_events.go │ │ ├── store_repository.go │ │ └── store_snapshots.go │ ├── grpc │ │ └── server.go │ ├── handlers │ │ ├── catalog.go │ │ ├── integration_events.go │ │ └── mall.go │ ├── logging │ │ ├── application.go │ │ └── event_handlers.go │ ├── postgres │ │ ├── catalog_repository.go │ │ └── mall_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── events.go │ ├── events.pb.go │ ├── events.proto │ ├── messages.pb.go │ └── messages.proto ├── Chapter07 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── order_handlers.go │ │ │ ├── product_handlers.go │ │ │ └── store_handlers.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── orders.go │ │ │ ├── products.go │ │ │ └── stores.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ └── events.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── integration_event_handlers.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ └── order_item.go │ │ │ ├── order_handlers.go │ │ │ ├── product_handlers.go │ │ │ ├── queries │ │ │ │ └── get_shopping_list.go │ │ │ └── store_handlers.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── orders.go │ │ │ ├── products.go │ │ │ └── stores.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 10_load_data.sh │ │ ├── 1_create_monolith_db.sh │ │ ├── 2_create_basket_schema.sh │ │ ├── 3_create_customers_schema.sh │ │ ├── 4_create_depot_schema.sh │ │ ├── 5_notifications_schema.sh │ │ ├── 6_create_ordering_schema.sh │ │ ├── 7_create_payments_schema.sh │ │ ├── 8_create_search_schema.sh │ │ └── 9_create_stores_schema.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── read_after_write.png │ │ └── read_after_write.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── event_messages.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── raw_message.go │ │ └── subscriber_config.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── event_options.go │ │ └── metadata.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ └── stream_message.proto │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── aggregate_event.go │ │ ├── event_store.go │ │ └── snapshot_store.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ ├── customer_handlers.go │ │ │ ├── customer_repository.go │ │ │ └── order_handlers.go │ │ ├── customer_cache_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ ├── customers.go │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ └── ready_order.go │ │ │ ├── integration_event_handlers.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── payment_repository.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ └── events.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── integration_event_handlers.go │ │ │ ├── invoice_repository.go │ │ │ ├── order_handlers.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ └── server.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── orders.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ └── events.proto ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ ├── customer_handlers.go │ │ │ ├── customer_repository.go │ │ │ ├── order_handlers.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_handlers.go │ │ │ ├── product_repository.go │ │ │ ├── store_cache_repository.go │ │ │ ├── store_handlers.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── customers.go │ │ │ ├── orders.go │ │ │ ├── products.go │ │ │ └── stores.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── catalog_handlers.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── decrease_product_price.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ ├── increase_product_price.go │ │ │ ├── rebrand_product.go │ │ │ ├── rebrand_store.go │ │ │ └── remove_product.go │ │ ├── integration_event_handlers.go │ │ ├── mall_handlers.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── catalog_repository.go │ │ ├── mall_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── product_snapshots.go │ │ ├── store.go │ │ ├── store_events.go │ │ ├── store_repository.go │ │ └── store_snapshots.go │ ├── grpc │ │ └── server.go │ ├── handlers │ │ ├── catalog.go │ │ ├── integration_events.go │ │ └── mall.go │ ├── logging │ │ ├── application.go │ │ └── event_handlers.go │ ├── postgres │ │ ├── catalog_repository.go │ │ └── mall_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── asyncapi.go │ ├── asyncapi.yaml │ ├── css │ ├── asyncapi.min.css │ └── global.min.css │ ├── events.go │ ├── events.pb.go │ ├── events.proto │ ├── index.html │ └── js │ └── asyncapi-ui.min.js ├── Chapter08 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ └── events.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── domain_events.go │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── cosec │ ├── internal │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── replies.go │ │ ├── logging │ │ │ ├── event_handlers.go │ │ │ └── reply_handlers.go │ │ ├── models │ │ │ └── data.go │ │ └── saga.go │ └── module.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ └── server.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ └── domain_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ ├── initiate_shopping.go │ │ │ │ └── order_item.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── domain_events.go │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 001_create_monolith_db.sh │ │ ├── 002_create_basket_schema.sh │ │ ├── 003_create_customers_schema.sh │ │ ├── 004_create_depot_schema.sh │ │ ├── 005_notifications_schema.sh │ │ ├── 006_create_ordering_schema.sh │ │ ├── 007_create_payments_schema.sh │ │ ├── 008_create_search_schema.sh │ │ ├── 009_create_stores_schema.sh │ │ ├── 010_load_data.sh │ │ └── 011_create_cosec_schema.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── 2pc_transaction.png │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── local_transaction.png │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── read_after_write.png │ │ ├── read_after_write.puml │ │ └── transactions.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── command.go │ │ ├── command_messages.go │ │ ├── event_messages.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── raw_message.go │ │ ├── reply.go │ │ ├── reply_messages.go │ │ └── subscriber_config.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── command.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── metadata.go │ │ └── reply.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ └── stream_message.proto │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── aggregate_event.go │ │ ├── event_store.go │ │ ├── saga_store.go │ │ └── snapshot_store.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── sec │ │ ├── orchestrator.go │ │ ├── saga.go │ │ ├── saga_repository.go │ │ └── saga_step.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── approve_order.go │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ ├── ready_order.go │ │ │ │ └── reject_order.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── server.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── domain_events.go │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ └── server.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── domain_events.go │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── catalog_handlers.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── decrease_product_price.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ ├── increase_product_price.go │ │ │ ├── rebrand_product.go │ │ │ ├── rebrand_store.go │ │ │ └── remove_product.go │ │ ├── mall_handlers.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── catalog_repository.go │ │ ├── mall_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── product_snapshots.go │ │ ├── store.go │ │ ├── store_events.go │ │ ├── store_repository.go │ │ └── store_snapshots.go │ ├── grpc │ │ └── server.go │ ├── handlers │ │ ├── catalog.go │ │ ├── domain_handlers.go │ │ └── mall.go │ ├── logging │ │ ├── application.go │ │ └── event_handlers.go │ ├── postgres │ │ ├── catalog_repository.go │ │ └── mall_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── asyncapi.go │ ├── asyncapi.yaml │ ├── css │ ├── asyncapi.min.css │ └── global.min.css │ ├── events.go │ ├── events.pb.go │ ├── events.proto │ ├── index.html │ └── js │ └── asyncapi-ui.min.js ├── Chapter09 ├── Makefile ├── baskets │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ └── events.proto │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── item.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── cosec │ ├── internal │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ ├── integration_events_transaction.go │ │ │ ├── replies.go │ │ │ └── replies_transaction.go │ │ ├── logging │ │ │ ├── event_handlers.go │ │ │ └── reply_handlers.go │ │ ├── models │ │ │ └── data.go │ │ └── saga.go │ └── module.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ └── application.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ └── domain_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ ├── initiate_shopping.go │ │ │ │ └── order_item.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── item.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 001_create_monolith_db.sh │ │ ├── 002_create_basket_schema.sh │ │ ├── 003_create_customers_schema.sh │ │ ├── 004_create_depot_schema.sh │ │ ├── 005_notifications_schema.sh │ │ ├── 006_create_ordering_schema.sh │ │ ├── 007_create_payments_schema.sh │ │ ├── 008_create_search_schema.sh │ │ ├── 009_create_stores_schema.sh │ │ ├── 010_load_data.sh │ │ └── 011_create_cosec_schema.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── 2pc_transaction.png │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── async_pay_invoice.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── local_transaction.png │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── pay_invoice.png │ │ ├── read_after_write.png │ │ ├── read_after_write.puml │ │ └── transactions.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── command.go │ │ ├── command_messages.go │ │ ├── event_messages.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── raw_message.go │ │ ├── reply.go │ │ ├── reply_messages.go │ │ └── subscriber_config.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── command.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── metadata.go │ │ └── reply.go │ ├── di │ │ ├── api.go │ │ ├── container.go │ │ └── tracked.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ └── stream_message.proto │ ├── logger │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── event_store.go │ │ ├── inbox_store.go │ │ ├── outbox_store.go │ │ ├── saga_store.go │ │ ├── snapshot_store.go │ │ └── types.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── sec │ │ ├── orchestrator.go │ │ ├── saga.go │ │ ├── saga_repository.go │ │ └── saga_step.go │ ├── tm │ │ ├── inbox_middleware.go │ │ ├── outbox_middleware.go │ │ └── outbox_processor.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── approve_order.go │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ ├── ready_order.go │ │ │ │ └── reject_order.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go └── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── features │ └── create_store.feature │ ├── generate.go │ ├── internal │ ├── application │ │ ├── application.go │ │ ├── commands │ │ │ ├── add_product.go │ │ │ ├── create_store.go │ │ │ ├── decrease_product_price.go │ │ │ ├── disable_participation.go │ │ │ ├── enable_participation.go │ │ │ ├── increase_product_price.go │ │ │ ├── rebrand_product.go │ │ │ ├── rebrand_store.go │ │ │ └── remove_product.go │ │ └── queries │ │ │ ├── get_catalog.go │ │ │ ├── get_participating_stores.go │ │ │ ├── get_product.go │ │ │ ├── get_store.go │ │ │ └── get_stores.go │ ├── domain │ │ ├── catalog_repository.go │ │ ├── mall_repository.go │ │ ├── product.go │ │ ├── product_events.go │ │ ├── product_repository.go │ │ ├── product_snapshots.go │ │ ├── store.go │ │ ├── store_events.go │ │ ├── store_repository.go │ │ └── store_snapshots.go │ ├── grpc │ │ ├── server.go │ │ └── server_transaction.go │ ├── handlers │ │ ├── catalog.go │ │ ├── domain_events.go │ │ ├── domain_events_transaction.go │ │ └── mall.go │ ├── logging │ │ ├── application.go │ │ └── event_handlers.go │ ├── postgres │ │ ├── catalog_repository.go │ │ └── mall_repository.go │ └── rest │ │ ├── api.annotations.yaml │ │ ├── api.openapi.yaml │ │ ├── api.swagger.json │ │ ├── gateway.go │ │ ├── index.html │ │ └── swagger.go │ ├── module.go │ ├── stores_test.go │ └── storespb │ ├── api.pb.go │ ├── api.pb.gw.go │ ├── api.proto │ ├── api_grpc.pb.go │ ├── asyncapi.go │ ├── asyncapi.yaml │ ├── css │ ├── asyncapi.min.css │ └── global.min.css │ ├── events.go │ ├── events.pb.go │ ├── events.proto │ ├── index.html │ └── js │ └── asyncapi-ui.min.js ├── Chapter10 ├── Makefile ├── baskets │ ├── basketsclient │ │ ├── basket │ │ │ ├── basket_client.go │ │ │ ├── cancel_basket_parameters.go │ │ │ ├── cancel_basket_responses.go │ │ │ ├── checkout_basket_parameters.go │ │ │ ├── checkout_basket_responses.go │ │ │ ├── get_basket_parameters.go │ │ │ ├── get_basket_responses.go │ │ │ ├── start_basket_parameters.go │ │ │ └── start_basket_responses.go │ │ ├── item │ │ │ ├── add_item_parameters.go │ │ │ ├── add_item_responses.go │ │ │ ├── item_client.go │ │ │ ├── remove_item_parameters.go │ │ │ └── remove_item_responses.go │ │ ├── models │ │ │ ├── add_item_params_body.go │ │ │ ├── basketspb_add_item_response.go │ │ │ ├── basketspb_basket.go │ │ │ ├── basketspb_cancel_basket_response.go │ │ │ ├── basketspb_checkout_basket_response.go │ │ │ ├── basketspb_get_basket_response.go │ │ │ ├── basketspb_item.go │ │ │ ├── basketspb_remove_item_response.go │ │ │ ├── basketspb_start_basket_request.go │ │ │ ├── basketspb_start_basket_response.go │ │ │ ├── checkout_basket_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── remove_item_params_body.go │ │ │ └── rpc_status.go │ │ └── shopping_baskets_client.go │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── mock_basket_service_client.go │ │ ├── mock_basket_service_server.go │ │ └── mock_unsafe_basket_service_server.go │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── application_test.go │ │ │ └── mock_app.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── basket_test.go │ │ │ ├── fake_basket_repository.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_basket_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── registrations.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_integration_test.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_integration_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── baskets-sub-stores-pub.json │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── product_cache_repository_integration_test.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── gateway_contract_test.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── ui │ │ ├── client.js │ │ ├── client.spec.js │ │ ├── package-lock.json │ │ ├── package.json │ │ └── pacts │ │ └── baskets-ui-baskets-api.json ├── cmd │ └── mallbots │ │ ├── main.go │ │ └── monolith.go ├── cosec │ ├── internal │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ ├── integration_events_transaction.go │ │ │ ├── replies.go │ │ │ └── replies_transaction.go │ │ ├── logging │ │ │ ├── event_handlers.go │ │ │ └── reply_handlers.go │ │ ├── models │ │ │ └── data.go │ │ └── saga.go │ └── module.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── customersclient │ │ ├── customer │ │ │ ├── change_sms_number_parameters.go │ │ │ ├── change_sms_number_responses.go │ │ │ ├── create_customer_parameters.go │ │ │ ├── create_customer_responses.go │ │ │ ├── customer_client.go │ │ │ ├── disable_customer_parameters.go │ │ │ ├── disable_customer_responses.go │ │ │ ├── enable_customer_parameters.go │ │ │ ├── enable_customer_responses.go │ │ │ ├── get_customer_parameters.go │ │ │ └── get_customer_responses.go │ │ ├── customers_client.go │ │ └── models │ │ │ ├── change_sms_number_params_body.go │ │ │ ├── customerspb_change_sms_number_response.go │ │ │ ├── customerspb_customer.go │ │ │ ├── customerspb_disable_customer_response.go │ │ │ ├── customerspb_enable_customer_response.go │ │ │ ├── customerspb_get_customer_response.go │ │ │ ├── customerspb_register_customer_request.go │ │ │ ├── customerspb_register_customer_response.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_customers_service_client.go │ │ ├── mock_customers_service_server.go │ │ └── mock_unsafe_customers_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── mock_app.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ ├── customer_repository.go │ │ │ └── mock_customer_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ └── domain_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_depot_service_client.go │ │ ├── mock_depot_service_server.go │ │ └── mock_unsafe_depot_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ ├── initiate_shopping.go │ │ │ │ └── order_item.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_shopping_list_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── depot-sub-stores-pub.json │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── database │ │ ├── 001_create_monolith_db.sh │ │ └── 002_create_pact_db.sh │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── 2pc_transaction.png │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── async_pay_invoice.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── local_transaction.png │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── pay_invoice.png │ │ ├── read_after_write.png │ │ ├── read_after_write.puml │ │ └── transactions.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── command.go │ │ ├── command_messages.go │ │ ├── event_messages.go │ │ ├── fake_message_publisher.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── mock_message_handler.go │ │ ├── mock_message_publisher.go │ │ ├── mock_message_subscriber.go │ │ ├── raw_message.go │ │ ├── reply.go │ │ ├── reply_messages.go │ │ ├── subscriber_config.go │ │ └── subscription.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── command.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── generate.go │ │ ├── metadata.go │ │ ├── mock_aggregate.go │ │ ├── mock_command_handler.go │ │ ├── mock_entity.go │ │ ├── mock_event_handler.go │ │ ├── mock_event_publisher.go │ │ ├── mock_event_subscriber.go │ │ ├── mock_reply_handler.go │ │ └── reply.go │ ├── di │ │ ├── api.go │ │ ├── container.go │ │ └── tracked.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ ├── fake_aggregate_repository.go │ │ ├── generate.go │ │ ├── mock_aggregate.go │ │ ├── mock_aggregate_repository.go │ │ ├── mock_aggregate_store.go │ │ ├── mock_event_sourced_aggregate.go │ │ └── snapshot.go │ ├── inmemory │ │ ├── raw_message.go │ │ └── stream.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ ├── stream_message.proto │ │ └── subscription.go │ ├── logger │ │ ├── log │ │ │ └── silent_logger.go │ │ └── logger.go │ ├── monolith │ │ └── monolith.go │ ├── postgres │ │ ├── event_store.go │ │ ├── inbox_store.go │ │ ├── outbox_store.go │ │ ├── saga_store.go │ │ ├── snapshot_store.go │ │ └── types.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── sec │ │ ├── orchestrator.go │ │ ├── saga.go │ │ ├── saga_repository.go │ │ └── saga_step.go │ ├── tm │ │ ├── inbox_middleware.go │ │ ├── outbox_middleware.go │ │ └── outbox_processor.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── migrations │ ├── 001_create_basket_schema.sql │ ├── 002_create_cosec_schema.sql │ ├── 003_create_customers_schema.sql │ ├── 004_create_depot_schema.sql │ ├── 005_notifications_schema.sql │ ├── 006_create_ordering_schema.sql │ ├── 007_create_payments_schema.sql │ ├── 008_create_search_schema.sql │ ├── 009_create_stores_schema.sql │ └── migrations.go ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── approve_order.go │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ ├── ready_order.go │ │ │ │ └── reject_order.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── mock_customer_repository.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_payment_repository.go │ │ │ ├── mock_shopping_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ ├── orderingclient │ │ ├── models │ │ │ ├── orderingpb_cancel_order_response.go │ │ │ ├── orderingpb_create_order_request.go │ │ │ ├── orderingpb_create_order_response.go │ │ │ ├── orderingpb_get_order_response.go │ │ │ ├── orderingpb_item.go │ │ │ ├── orderingpb_order.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ │ ├── order │ │ │ ├── cancel_order_parameters.go │ │ │ ├── cancel_order_responses.go │ │ │ ├── create_order_parameters.go │ │ │ ├── create_order_responses.go │ │ │ ├── get_order_parameters.go │ │ │ ├── get_order_responses.go │ │ │ └── order_client.go │ │ └── order_processing_client.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_ordering_service_client.go │ │ ├── mock_ordering_service_server.go │ │ └── mock_unsafe_ordering_service_server.go ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── add_product.go │ │ │ │ ├── create_store.go │ │ │ │ ├── decrease_product_price.go │ │ │ │ ├── disable_participation.go │ │ │ │ ├── enable_participation.go │ │ │ │ ├── increase_product_price.go │ │ │ │ ├── rebrand_product.go │ │ │ │ ├── rebrand_store.go │ │ │ │ └── remove_product.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ ├── get_catalog.go │ │ │ │ ├── get_participating_stores.go │ │ │ │ ├── get_product.go │ │ │ │ ├── get_store.go │ │ │ │ └── get_stores.go │ │ ├── domain │ │ │ ├── catalog_repository.go │ │ │ ├── fake_catalog_repository.go │ │ │ ├── fake_mall_repository.go │ │ │ ├── fake_product_repository.go │ │ │ ├── fake_store_repository.go │ │ │ ├── mall_repository.go │ │ │ ├── mock_catalog_repository.go │ │ │ ├── mock_mall_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_events.go │ │ │ ├── product_repository.go │ │ │ ├── product_snapshots.go │ │ │ ├── store.go │ │ │ ├── store_events.go │ │ │ ├── store_repository.go │ │ │ └── store_snapshots.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── catalog.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_contract_test.go │ │ │ ├── domain_events_transaction.go │ │ │ └── mall.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── catalog_repository.go │ │ │ └── mall_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── module.go │ ├── storesclient │ │ ├── models │ │ │ ├── add_product_params_body.go │ │ │ ├── decrease_product_price_params_body.go │ │ │ ├── increase_product_price_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── rebrand_product_params_body.go │ │ │ ├── rebrand_store_params_body.go │ │ │ ├── rpc_status.go │ │ │ ├── storespb_add_product_response.go │ │ │ ├── storespb_create_store_request.go │ │ │ ├── storespb_create_store_response.go │ │ │ ├── storespb_decrease_product_price_response.go │ │ │ ├── storespb_disable_participation_response.go │ │ │ ├── storespb_enable_participation_response.go │ │ │ ├── storespb_get_catalog_response.go │ │ │ ├── storespb_get_participating_stores_response.go │ │ │ ├── storespb_get_product_response.go │ │ │ ├── storespb_get_store_response.go │ │ │ ├── storespb_get_stores_response.go │ │ │ ├── storespb_increase_product_price_response.go │ │ │ ├── storespb_product.go │ │ │ ├── storespb_rebrand_product_response.go │ │ │ ├── storespb_rebrand_store_response.go │ │ │ ├── storespb_remove_product_response.go │ │ │ └── storespb_store.go │ │ ├── participation │ │ │ ├── disable_participation_parameters.go │ │ │ ├── disable_participation_responses.go │ │ │ ├── enable_participation_parameters.go │ │ │ ├── enable_participation_responses.go │ │ │ ├── get_participating_stores_parameters.go │ │ │ ├── get_participating_stores_responses.go │ │ │ └── participation_client.go │ │ ├── product │ │ │ ├── add_product_parameters.go │ │ │ ├── add_product_responses.go │ │ │ ├── decrease_product_price_parameters.go │ │ │ ├── decrease_product_price_responses.go │ │ │ ├── get_product_parameters.go │ │ │ ├── get_product_responses.go │ │ │ ├── get_store_product_parameters.go │ │ │ ├── get_store_product_responses.go │ │ │ ├── increase_product_price_parameters.go │ │ │ ├── increase_product_price_responses.go │ │ │ ├── product_client.go │ │ │ ├── rebrand_product_parameters.go │ │ │ ├── rebrand_product_responses.go │ │ │ ├── remove_product_parameters.go │ │ │ └── remove_product_responses.go │ │ ├── store │ │ │ ├── create_store_parameters.go │ │ │ ├── create_store_responses.go │ │ │ ├── get_store_parameters.go │ │ │ ├── get_store_responses.go │ │ │ ├── get_stores_parameters.go │ │ │ ├── get_stores_responses.go │ │ │ ├── rebrand_store_parameters.go │ │ │ ├── rebrand_store_responses.go │ │ │ └── store_client.go │ │ └── store_management_client.go │ └── storespb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── asyncapi.go │ │ ├── asyncapi.yaml │ │ ├── css │ │ ├── asyncapi.min.css │ │ └── global.min.css │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── index.html │ │ ├── js │ │ └── asyncapi-ui.min.js │ │ ├── mock_stores_service_client.go │ │ ├── mock_stores_service_server.go │ │ └── mock_unsafe_stores_service_server.go └── testing │ └── e2e │ ├── baskets_context.go │ ├── customers_context.go │ ├── e2e_test.go │ ├── features │ ├── baskets │ │ └── checkout_basket.feature │ ├── customers │ │ └── register_customer.feature │ ├── kiosk │ │ └── shopping.feature │ ├── orders │ │ └── processing.feature │ └── stores │ │ └── create_store.feature │ ├── stores_context.go │ └── suite.go ├── Chapter11 ├── .dockerignore ├── .github │ └── workflows │ │ └── baskets.yaml ├── Makefile ├── baskets │ ├── basketsclient │ │ ├── basket │ │ │ ├── basket_client.go │ │ │ ├── cancel_basket_parameters.go │ │ │ ├── cancel_basket_responses.go │ │ │ ├── checkout_basket_parameters.go │ │ │ ├── checkout_basket_responses.go │ │ │ ├── get_basket_parameters.go │ │ │ ├── get_basket_responses.go │ │ │ ├── start_basket_parameters.go │ │ │ └── start_basket_responses.go │ │ ├── item │ │ │ ├── add_item_parameters.go │ │ │ ├── add_item_responses.go │ │ │ ├── item_client.go │ │ │ ├── remove_item_parameters.go │ │ │ └── remove_item_responses.go │ │ ├── models │ │ │ ├── add_item_params_body.go │ │ │ ├── basketspb_add_item_response.go │ │ │ ├── basketspb_basket.go │ │ │ ├── basketspb_cancel_basket_response.go │ │ │ ├── basketspb_checkout_basket_response.go │ │ │ ├── basketspb_get_basket_response.go │ │ │ ├── basketspb_item.go │ │ │ ├── basketspb_remove_item_response.go │ │ │ ├── basketspb_start_basket_request.go │ │ │ ├── basketspb_start_basket_response.go │ │ │ ├── checkout_basket_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── remove_item_params_body.go │ │ │ └── rpc_status.go │ │ └── shopping_baskets_client.go │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── mock_basket_service_client.go │ │ ├── mock_basket_service_server.go │ │ └── mock_unsafe_basket_service_server.go │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── application_test.go │ │ │ └── mock_app.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── basket_test.go │ │ │ ├── fake_basket_repository.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_basket_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── registrations.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_integration_test.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_integration_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── baskets-sub-stores-pub.json │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── product_cache_repository_integration_test.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── gateway_contract_test.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── ui │ │ ├── client.js │ │ ├── client.spec.js │ │ ├── package-lock.json │ │ ├── package.json │ │ └── pacts │ │ └── baskets-ui-baskets-api.json ├── cmd │ └── mallbots │ │ └── main.go ├── cosec │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── internal │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ ├── integration_events_transaction.go │ │ │ ├── replies.go │ │ │ └── replies_transaction.go │ │ ├── logging │ │ │ ├── event_handlers.go │ │ │ └── reply_handlers.go │ │ ├── models │ │ │ └── data.go │ │ └── saga.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── customersclient │ │ ├── customer │ │ │ ├── change_sms_number_parameters.go │ │ │ ├── change_sms_number_responses.go │ │ │ ├── create_customer_parameters.go │ │ │ ├── create_customer_responses.go │ │ │ ├── customer_client.go │ │ │ ├── disable_customer_parameters.go │ │ │ ├── disable_customer_responses.go │ │ │ ├── enable_customer_parameters.go │ │ │ ├── enable_customer_responses.go │ │ │ ├── get_customer_parameters.go │ │ │ └── get_customer_responses.go │ │ ├── customers_client.go │ │ └── models │ │ │ ├── change_sms_number_params_body.go │ │ │ ├── customerspb_change_sms_number_response.go │ │ │ ├── customerspb_customer.go │ │ │ ├── customerspb_disable_customer_response.go │ │ │ ├── customerspb_enable_customer_response.go │ │ │ ├── customerspb_get_customer_response.go │ │ │ ├── customerspb_register_customer_request.go │ │ │ ├── customerspb_register_customer_response.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_customers_service_client.go │ │ ├── mock_customers_service_server.go │ │ └── mock_unsafe_customers_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ └── mock_app.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ ├── customer_repository.go │ │ │ └── mock_customer_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ └── domain_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── deployment │ ├── application │ │ ├── Makefile │ │ ├── database.tf │ │ ├── kubernetes.tf │ │ ├── main.tf │ │ ├── nats.tf │ │ ├── providers.tf │ │ ├── sql │ │ │ ├── init_db.psql │ │ │ └── init_service_db.psql │ │ ├── svc_baskets.tf │ │ ├── svc_cosec.tf │ │ ├── svc_customers.tf │ │ ├── svc_depot.tf │ │ ├── svc_notifications.tf │ │ ├── svc_ordering.tf │ │ ├── svc_payments.tf │ │ ├── svc_search.tf │ │ └── svc_stores.tf │ ├── infrastructure │ │ ├── Makefile │ │ ├── alb.tf │ │ ├── ecr.tf │ │ ├── eks.tf │ │ ├── main.tf │ │ ├── providers.tf │ │ ├── rds.tf │ │ ├── security_groups.tf │ │ └── vpc.tf │ └── setup-tools │ │ ├── Dockerfile │ │ ├── set-tool-alias.sh │ │ └── win-set-tool-alias.ps1 ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_depot_service_client.go │ │ ├── mock_depot_service_server.go │ │ └── mock_unsafe_depot_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ ├── initiate_shopping.go │ │ │ │ └── order_item.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_shopping_list_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── depot-sub-stores-pub.json │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── Dockerfile.microservices │ ├── database │ │ ├── 001_create_monolith_db.sh │ │ ├── 002_create_pact_db.sh │ │ └── 003_create_service_dbs.sh │ ├── nginx.conf │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── 2pc_transaction.png │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── async_pay_invoice.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── local_transaction.png │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── pay_invoice.png │ │ ├── read_after_write.png │ │ ├── read_after_write.puml │ │ └── transactions.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── command.go │ │ ├── command_messages.go │ │ ├── event_messages.go │ │ ├── fake_message_publisher.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── mock_message_handler.go │ │ ├── mock_message_publisher.go │ │ ├── mock_message_subscriber.go │ │ ├── raw_message.go │ │ ├── reply.go │ │ ├── reply_messages.go │ │ ├── subscriber_config.go │ │ └── subscription.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── command.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── generate.go │ │ ├── metadata.go │ │ ├── mock_aggregate.go │ │ ├── mock_command_handler.go │ │ ├── mock_entity.go │ │ ├── mock_event_handler.go │ │ ├── mock_event_publisher.go │ │ ├── mock_event_subscriber.go │ │ ├── mock_reply_handler.go │ │ └── reply.go │ ├── di │ │ ├── api.go │ │ ├── container.go │ │ └── tracked.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ ├── fake_aggregate_repository.go │ │ ├── generate.go │ │ ├── mock_aggregate.go │ │ ├── mock_aggregate_repository.go │ │ ├── mock_aggregate_store.go │ │ ├── mock_event_sourced_aggregate.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ ├── stream_message.proto │ │ └── subscription.go │ ├── logger │ │ ├── log │ │ │ └── silent_logger.go │ │ └── logger.go │ ├── postgres │ │ ├── event_store.go │ │ ├── inbox_store.go │ │ ├── outbox_store.go │ │ ├── saga_store.go │ │ ├── snapshot_store.go │ │ └── types.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ └── config.go │ ├── sec │ │ ├── orchestrator.go │ │ ├── saga.go │ │ ├── saga_repository.go │ │ └── saga_step.go │ ├── system │ │ ├── system.go │ │ └── types.go │ ├── tm │ │ ├── inbox_middleware.go │ │ ├── outbox_middleware.go │ │ └── outbox_processor.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── migrations │ ├── 001_create_basket_schema.sql │ ├── 002_create_cosec_schema.sql │ ├── 003_create_customers_schema.sql │ ├── 004_create_depot_schema.sql │ ├── 005_notifications_schema.sql │ ├── 006_create_ordering_schema.sql │ ├── 007_create_payments_schema.sql │ ├── 008_create_search_schema.sql │ ├── 009_create_stores_schema.sql │ └── migrations.go ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ └── customer_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── approve_order.go │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ ├── ready_order.go │ │ │ │ └── reject_order.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── mock_customer_repository.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_payment_repository.go │ │ │ ├── mock_shopping_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── shopping_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ ├── orderingclient │ │ ├── models │ │ │ ├── orderingpb_cancel_order_response.go │ │ │ ├── orderingpb_create_order_request.go │ │ │ ├── orderingpb_create_order_response.go │ │ │ ├── orderingpb_get_order_response.go │ │ │ ├── orderingpb_item.go │ │ │ ├── orderingpb_order.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ │ ├── order │ │ │ ├── cancel_order_parameters.go │ │ │ ├── cancel_order_responses.go │ │ │ ├── create_order_parameters.go │ │ │ ├── create_order_responses.go │ │ │ ├── get_order_parameters.go │ │ │ ├── get_order_responses.go │ │ │ └── order_client.go │ │ └── order_processing_client.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_ordering_service_client.go │ │ ├── mock_ordering_service_server.go │ │ └── mock_unsafe_ordering_service_server.go ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ ├── command_handlers.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ └── messages.proto ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── conn.go │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── add_product.go │ │ │ │ ├── create_store.go │ │ │ │ ├── decrease_product_price.go │ │ │ │ ├── disable_participation.go │ │ │ │ ├── enable_participation.go │ │ │ │ ├── increase_product_price.go │ │ │ │ ├── rebrand_product.go │ │ │ │ ├── rebrand_store.go │ │ │ │ └── remove_product.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ ├── get_catalog.go │ │ │ │ ├── get_participating_stores.go │ │ │ │ ├── get_product.go │ │ │ │ ├── get_store.go │ │ │ │ └── get_stores.go │ │ ├── domain │ │ │ ├── catalog_repository.go │ │ │ ├── fake_catalog_repository.go │ │ │ ├── fake_mall_repository.go │ │ │ ├── fake_product_repository.go │ │ │ ├── fake_store_repository.go │ │ │ ├── mall_repository.go │ │ │ ├── mock_catalog_repository.go │ │ │ ├── mock_mall_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_events.go │ │ │ ├── product_repository.go │ │ │ ├── product_snapshots.go │ │ │ ├── store.go │ │ │ ├── store_events.go │ │ │ ├── store_repository.go │ │ │ └── store_snapshots.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── catalog.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_contract_test.go │ │ │ ├── domain_events_transaction.go │ │ │ └── mall.go │ │ ├── logging │ │ │ ├── application.go │ │ │ └── event_handlers.go │ │ ├── postgres │ │ │ ├── catalog_repository.go │ │ │ └── mall_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ ├── storesclient │ │ ├── models │ │ │ ├── add_product_params_body.go │ │ │ ├── decrease_product_price_params_body.go │ │ │ ├── increase_product_price_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── rebrand_product_params_body.go │ │ │ ├── rebrand_store_params_body.go │ │ │ ├── rpc_status.go │ │ │ ├── storespb_add_product_response.go │ │ │ ├── storespb_create_store_request.go │ │ │ ├── storespb_create_store_response.go │ │ │ ├── storespb_decrease_product_price_response.go │ │ │ ├── storespb_disable_participation_response.go │ │ │ ├── storespb_enable_participation_response.go │ │ │ ├── storespb_get_catalog_response.go │ │ │ ├── storespb_get_participating_stores_response.go │ │ │ ├── storespb_get_product_response.go │ │ │ ├── storespb_get_store_response.go │ │ │ ├── storespb_get_stores_response.go │ │ │ ├── storespb_increase_product_price_response.go │ │ │ ├── storespb_product.go │ │ │ ├── storespb_rebrand_product_response.go │ │ │ ├── storespb_rebrand_store_response.go │ │ │ ├── storespb_remove_product_response.go │ │ │ └── storespb_store.go │ │ ├── participation │ │ │ ├── disable_participation_parameters.go │ │ │ ├── disable_participation_responses.go │ │ │ ├── enable_participation_parameters.go │ │ │ ├── enable_participation_responses.go │ │ │ ├── get_participating_stores_parameters.go │ │ │ ├── get_participating_stores_responses.go │ │ │ └── participation_client.go │ │ ├── product │ │ │ ├── add_product_parameters.go │ │ │ ├── add_product_responses.go │ │ │ ├── decrease_product_price_parameters.go │ │ │ ├── decrease_product_price_responses.go │ │ │ ├── get_product_parameters.go │ │ │ ├── get_product_responses.go │ │ │ ├── get_store_product_parameters.go │ │ │ ├── get_store_product_responses.go │ │ │ ├── increase_product_price_parameters.go │ │ │ ├── increase_product_price_responses.go │ │ │ ├── product_client.go │ │ │ ├── rebrand_product_parameters.go │ │ │ ├── rebrand_product_responses.go │ │ │ ├── remove_product_parameters.go │ │ │ └── remove_product_responses.go │ │ ├── store │ │ │ ├── create_store_parameters.go │ │ │ ├── create_store_responses.go │ │ │ ├── get_store_parameters.go │ │ │ ├── get_store_responses.go │ │ │ ├── get_stores_parameters.go │ │ │ ├── get_stores_responses.go │ │ │ ├── rebrand_store_parameters.go │ │ │ ├── rebrand_store_responses.go │ │ │ └── store_client.go │ │ └── store_management_client.go │ └── storespb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── asyncapi.go │ │ ├── asyncapi.yaml │ │ ├── css │ │ ├── asyncapi.min.css │ │ └── global.min.css │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── index.html │ │ ├── js │ │ └── asyncapi-ui.min.js │ │ ├── mock_stores_service_client.go │ │ ├── mock_stores_service_server.go │ │ └── mock_unsafe_stores_service_server.go └── testing │ └── e2e │ ├── baskets_feature_test.go │ ├── customers_feature_test.go │ ├── e2e_test.go │ ├── features │ ├── baskets │ │ ├── add_item.feature │ │ ├── checkout_basket.feature │ │ └── start_basket.feature │ ├── customers │ │ └── register_customer.feature │ ├── kiosk │ │ └── shopping.feature │ ├── orders │ │ └── processing.feature │ └── stores │ │ ├── create_product.feature │ │ └── create_store.feature │ └── stores_feature_test.go ├── Chapter12 ├── .dockerignore ├── .github │ └── workflows │ │ └── baskets.yaml ├── Makefile ├── baskets │ ├── basketsclient │ │ ├── basket │ │ │ ├── basket_client.go │ │ │ ├── cancel_basket_parameters.go │ │ │ ├── cancel_basket_responses.go │ │ │ ├── checkout_basket_parameters.go │ │ │ ├── checkout_basket_responses.go │ │ │ ├── get_basket_parameters.go │ │ │ ├── get_basket_responses.go │ │ │ ├── start_basket_parameters.go │ │ │ └── start_basket_responses.go │ │ ├── item │ │ │ ├── add_item_parameters.go │ │ │ ├── add_item_responses.go │ │ │ ├── item_client.go │ │ │ ├── remove_item_parameters.go │ │ │ └── remove_item_responses.go │ │ ├── models │ │ │ ├── add_item_params_body.go │ │ │ ├── basketspb_add_item_response.go │ │ │ ├── basketspb_basket.go │ │ │ ├── basketspb_cancel_basket_response.go │ │ │ ├── basketspb_checkout_basket_response.go │ │ │ ├── basketspb_get_basket_response.go │ │ │ ├── basketspb_item.go │ │ │ ├── basketspb_remove_item_response.go │ │ │ ├── basketspb_start_basket_request.go │ │ │ ├── basketspb_start_basket_response.go │ │ │ ├── checkout_basket_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── remove_item_params_body.go │ │ │ └── rpc_status.go │ │ └── shopping_baskets_client.go │ ├── basketspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── mock_basket_service_client.go │ │ ├── mock_basket_service_server.go │ │ └── mock_unsafe_basket_service_server.go │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── application_test.go │ │ │ ├── instrumented_app.go │ │ │ └── mock_app.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── domain │ │ │ ├── basket.go │ │ │ ├── basket_events.go │ │ │ ├── basket_repository.go │ │ │ ├── basket_snapshots.go │ │ │ ├── basket_status.go │ │ │ ├── basket_test.go │ │ │ ├── fake_basket_repository.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_basket_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── registrations.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_integration_test.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_integration_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── baskets-sub-stores-pub.json │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── product_cache_repository_integration_test.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── gateway_contract_test.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── ui │ │ ├── client.js │ │ ├── client.spec.js │ │ ├── package-lock.json │ │ ├── package.json │ │ └── pacts │ │ └── baskets-ui-baskets-api.json ├── cmd │ ├── busywork │ │ ├── baskets │ │ │ └── client.go │ │ ├── client.go │ │ ├── customers │ │ │ └── client.go │ │ ├── main.go │ │ ├── payments │ │ │ └── client.go │ │ └── stores │ │ │ └── client.go │ └── mallbots │ │ └── main.go ├── cosec │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── internal │ │ ├── constants │ │ │ └── constants.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ ├── integration_events_transaction.go │ │ │ ├── replies.go │ │ │ └── replies_transaction.go │ │ ├── models │ │ │ └── data.go │ │ └── saga.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── create_order.http ├── customers │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── customersclient │ │ ├── customer │ │ │ ├── change_sms_number_parameters.go │ │ │ ├── change_sms_number_responses.go │ │ │ ├── customer_client.go │ │ │ ├── disable_customer_parameters.go │ │ │ ├── disable_customer_responses.go │ │ │ ├── enable_customer_parameters.go │ │ │ ├── enable_customer_responses.go │ │ │ ├── get_customer_parameters.go │ │ │ ├── get_customer_responses.go │ │ │ ├── register_customer_parameters.go │ │ │ └── register_customer_responses.go │ │ ├── customers_client.go │ │ └── models │ │ │ ├── change_sms_number_params_body.go │ │ │ ├── customerspb_change_sms_number_response.go │ │ │ ├── customerspb_customer.go │ │ │ ├── customerspb_disable_customer_response.go │ │ │ ├── customerspb_enable_customer_response.go │ │ │ ├── customerspb_get_customer_response.go │ │ │ ├── customerspb_register_customer_request.go │ │ │ ├── customerspb_register_customer_response.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ ├── customerspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_customers_service_client.go │ │ ├── mock_customers_service_server.go │ │ └── mock_unsafe_customers_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── instrumented_app.go │ │ │ └── mock_app.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── domain │ │ │ ├── customer.go │ │ │ ├── customer_events.go │ │ │ ├── customer_repository.go │ │ │ └── mock_customer_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ └── domain_events_transaction.go │ │ ├── postgres │ │ │ └── customer_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── deployment │ ├── application │ │ ├── .terraform.lock.hcl │ │ ├── Makefile │ │ ├── database.tf │ │ ├── kubernetes.tf │ │ ├── main.tf │ │ ├── nats.tf │ │ ├── providers.tf │ │ ├── sql │ │ │ ├── init_db.psql │ │ │ └── init_service_db.psql │ │ ├── svc_baskets.tf │ │ ├── svc_cosec.tf │ │ ├── svc_customers.tf │ │ ├── svc_depot.tf │ │ ├── svc_notifications.tf │ │ ├── svc_ordering.tf │ │ ├── svc_payments.tf │ │ ├── svc_search.tf │ │ └── svc_stores.tf │ ├── infrastructure │ │ ├── .terraform.lock.hcl │ │ ├── Makefile │ │ ├── alb.tf │ │ ├── ecr.tf │ │ ├── eks.tf │ │ ├── main.tf │ │ ├── providers.tf │ │ ├── rds.tf │ │ ├── security_groups.tf │ │ └── vpc.tf │ └── setup-tools │ │ ├── Dockerfile │ │ ├── set-tool-alias.sh │ │ └── win-set-tool-alias.ps1 ├── depot │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── depotclient │ │ ├── depot_operations_client.go │ │ ├── models │ │ │ ├── assign_shopping_list_params_body.go │ │ │ ├── depotpb_assign_shopping_list_response.go │ │ │ ├── depotpb_cancel_shopping_list_response.go │ │ │ ├── depotpb_complete_shopping_list_response.go │ │ │ ├── depotpb_create_shopping_list_request.go │ │ │ ├── depotpb_create_shopping_list_response.go │ │ │ ├── depotpb_order_item.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ │ └── shopping_list │ │ │ ├── assign_shopping_list_parameters.go │ │ │ ├── assign_shopping_list_responses.go │ │ │ ├── cancel_shopping_list_parameters.go │ │ │ ├── cancel_shopping_list_responses.go │ │ │ ├── ccomplete_shopping_list_parameters.go │ │ │ ├── ccomplete_shopping_list_responses.go │ │ │ ├── create_shopping_list_parameters.go │ │ │ ├── create_shopping_list_responses.go │ │ │ └── shopping_list_client.go │ ├── depotpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_depot_service_client.go │ │ ├── mock_depot_service_server.go │ │ └── mock_unsafe_depot_service_server.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── assign_shopping_list.go │ │ │ │ ├── cancel_shopping_list.go │ │ │ │ ├── complete_shopping_list.go │ │ │ │ ├── create_shopping_list.go │ │ │ │ ├── initiate_shopping.go │ │ │ │ └── order_item.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_shopping_list.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── domain │ │ │ ├── bot.go │ │ │ ├── bot_status.go │ │ │ ├── fake_product_cache_repository.go │ │ │ ├── fake_store_cache_repository.go │ │ │ ├── item.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_product_cache_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_shopping_list_repository.go │ │ │ ├── mock_store_cache_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product.go │ │ │ ├── product_cache_repository.go │ │ │ ├── product_repository.go │ │ │ ├── shopping_list.go │ │ │ ├── shopping_list_events.go │ │ │ ├── shopping_list_repository.go │ │ │ ├── shopping_list_status.go │ │ │ ├── stop.go │ │ │ ├── store.go │ │ │ ├── store_cache_repository.go │ │ │ └── store_repository.go │ │ ├── grpc │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ ├── integration_events_contract_test.go │ │ │ ├── integration_events_transaction.go │ │ │ └── pacts │ │ │ │ └── depot-sub-stores-pub.json │ │ ├── postgres │ │ │ ├── product_cache_repository.go │ │ │ ├── shopping_list_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ └── module.go ├── docker-compose.yml ├── docker │ ├── .env │ ├── Dockerfile │ ├── Dockerfile.microservices │ ├── database │ │ ├── 001_create_monolith_db.sh │ │ ├── 002_create_pact_db.sh │ │ └── 003_create_service_dbs.sh │ ├── grafana │ │ ├── grafana.ini │ │ └── provisioning │ │ │ ├── dashboards │ │ │ ├── default.yaml │ │ │ ├── mallbots.json │ │ │ └── opentelemetry-collector.json │ │ │ └── datasources │ │ │ ├── default.yaml │ │ │ └── jaeger.yaml │ ├── nginx.conf │ ├── otel │ │ └── otel-config.yml │ ├── prometheus │ │ └── prometheus-config.yml │ └── wait-for ├── docs │ ├── ADL │ │ ├── 0001-keep-an-architecture-decision-log.md │ │ └── 0002-use-a-modular-monolith-architecture.md │ ├── Diagrams │ │ ├── 2pc_transaction.png │ │ ├── adding_items.plantuml │ │ ├── adding_items.png │ │ ├── async_pay_invoice.png │ │ ├── create_order_with_domain_events.plantuml │ │ ├── create_order_with_domain_events.png │ │ ├── deduplication_flow.puml │ │ ├── local_transaction.png │ │ ├── notification_ordering.png │ │ ├── notification_ordering.puml │ │ ├── pay_invoice.png │ │ ├── read_after_write.png │ │ ├── read_after_write.puml │ │ └── transactions.puml │ └── EventStorming │ │ └── BigPicture │ │ ├── 2_chaotic_exploration.png │ │ ├── 3_enforcing_the_timeline.png │ │ ├── 4_people_and_systems.png │ │ ├── 5_explicit_walkthrough.png │ │ └── bounded_contexts.png ├── go.mod ├── go.sum ├── internal │ ├── am │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── command_messages.go │ │ ├── event_messages.go │ │ ├── fake_event_publisher.go │ │ ├── generate.go │ │ ├── message.go │ │ ├── message_types.pb.go │ │ ├── message_types.proto │ │ ├── middleware.go │ │ ├── mock_command_publisher.go │ │ ├── mock_event_publisher.go │ │ ├── mock_reply_publisher.go │ │ ├── reply_messages.go │ │ ├── subscriber_config.go │ │ └── subscription.go │ ├── amotel │ │ ├── extractor.go │ │ ├── injector.go │ │ ├── metadata_carrier.go │ │ └── trace.go │ ├── amprom │ │ ├── received.go │ │ └── sent.go │ ├── config │ │ └── config.go │ ├── ddd │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── command.go │ │ ├── entity.go │ │ ├── entity_build_options.go │ │ ├── event.go │ │ ├── event_dispatcher.go │ │ ├── generate.go │ │ ├── metadata.go │ │ ├── mock_aggregate.go │ │ ├── mock_command_handler.go │ │ ├── mock_entity.go │ │ ├── mock_event_handler.go │ │ ├── mock_event_publisher.go │ │ ├── mock_event_subscriber.go │ │ ├── mock_reply_handler.go │ │ └── reply.go │ ├── di │ │ ├── api.go │ │ ├── container.go │ │ └── tracked.go │ ├── errorsotel │ │ └── errors.go │ ├── es │ │ ├── aggregate.go │ │ ├── aggregate_build_options.go │ │ ├── aggregate_repository.go │ │ ├── aggregate_store.go │ │ ├── event.go │ │ ├── event_publisher.go │ │ ├── fake_aggregate_repository.go │ │ ├── generate.go │ │ ├── mock_aggregate.go │ │ ├── mock_aggregate_repository.go │ │ ├── mock_aggregate_store.go │ │ ├── mock_event_sourced_aggregate.go │ │ └── snapshot.go │ ├── jetstream │ │ ├── buf.gen.yaml │ │ ├── buf.yaml │ │ ├── generate.go │ │ ├── raw_message.go │ │ ├── stream.go │ │ ├── stream_message.pb.go │ │ ├── stream_message.proto │ │ └── subscription.go │ ├── logger │ │ ├── log │ │ │ └── silent_logger.go │ │ └── logger.go │ ├── postgres │ │ ├── event_store.go │ │ ├── inbox_store.go │ │ ├── outbox_store.go │ │ ├── saga_store.go │ │ ├── snapshot_store.go │ │ └── types.go │ ├── postgresotel │ │ └── trace.go │ ├── registry │ │ ├── build_options.go │ │ ├── errors.go │ │ ├── registration.go │ │ ├── registry.go │ │ ├── serde.go │ │ └── serdes │ │ │ ├── doc.go │ │ │ ├── json.go │ │ │ └── proto.go │ ├── rpc │ │ ├── config.go │ │ └── conn.go │ ├── sec │ │ ├── orchestrator.go │ │ ├── saga.go │ │ ├── saga_repository.go │ │ └── saga_step.go │ ├── system │ │ ├── system.go │ │ └── types.go │ ├── tm │ │ ├── inbox_middleware.go │ │ ├── outbox_middleware.go │ │ └── outbox_processor.go │ ├── tools.go │ ├── waiter │ │ ├── options.go │ │ └── waiter.go │ └── web │ │ ├── config.go │ │ ├── embed.go │ │ ├── index.html │ │ └── swagger-ui │ │ ├── favicon-16x16.png │ │ ├── favicon-32x32.png │ │ ├── index.html │ │ ├── oauth2-redirect.html │ │ ├── swagger-ui-bundle.js │ │ ├── swagger-ui-es-bundle-core.js │ │ ├── swagger-ui-es-bundle.js │ │ ├── swagger-ui-standalone-preset.js │ │ ├── swagger-ui.css │ │ └── swagger-ui.js ├── migrations │ ├── 001_create_basket_schema.sql │ ├── 002_create_cosec_schema.sql │ ├── 003_create_customers_schema.sql │ ├── 004_create_depot_schema.sql │ ├── 005_create_notifications_schema.sql │ ├── 006_create_ordering_schema.sql │ ├── 007_create_payments_schema.sql │ ├── 008_create_search_schema.sql │ ├── 009_create_stores_schema.sql │ └── migrations.go ├── notifications │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_cache_repository.go │ │ │ └── customer_repository.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── grpc │ │ │ ├── customer_repository.go │ │ │ └── server.go │ │ ├── handlers │ │ │ └── integration_events.go │ │ ├── models │ │ │ └── customer.go │ │ └── postgres │ │ │ └── customer_cache_repository.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── notificationspb │ │ ├── api.pb.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── ordering │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── approve_order.go │ │ │ │ ├── cancel_order.go │ │ │ │ ├── complete_order.go │ │ │ │ ├── create_order.go │ │ │ │ ├── ready_order.go │ │ │ │ └── reject_order.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ └── get_order.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── domain │ │ │ ├── customer_repository.go │ │ │ ├── item.go │ │ │ ├── mock_customer_repository.go │ │ │ ├── mock_order_repository.go │ │ │ ├── mock_payment_repository.go │ │ │ ├── mock_shopping_repository.go │ │ │ ├── order.go │ │ │ ├── order_events.go │ │ │ ├── order_repository.go │ │ │ ├── order_snapshots.go │ │ │ ├── order_status.go │ │ │ ├── payment_repository.go │ │ │ └── shopping_repository.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ ├── orderingclient │ │ ├── models │ │ │ ├── orderingpb_cancel_order_response.go │ │ │ ├── orderingpb_create_order_request.go │ │ │ ├── orderingpb_create_order_response.go │ │ │ ├── orderingpb_get_order_response.go │ │ │ ├── orderingpb_item.go │ │ │ ├── orderingpb_order.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ │ ├── order │ │ │ ├── cancel_order_parameters.go │ │ │ ├── cancel_order_responses.go │ │ │ ├── create_order_parameters.go │ │ │ ├── create_order_responses.go │ │ │ ├── get_order_parameters.go │ │ │ ├── get_order_responses.go │ │ │ └── order_client.go │ │ └── order_processing_client.go │ └── orderingpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_ordering_service_client.go │ │ ├── mock_ordering_service_server.go │ │ └── mock_unsafe_ordering_service_server.go ├── payments │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── invoice_repository.go │ │ │ ├── mock_app.go │ │ │ ├── mock_invoice_repository.go │ │ │ ├── mock_payment_repository.go │ │ │ └── payment_repository.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── commands.go │ │ │ ├── commands_transaction.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_transaction.go │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── models │ │ │ ├── invoice.go │ │ │ ├── invoice_events.go │ │ │ └── payment.go │ │ ├── postgres │ │ │ ├── invoice_repository.go │ │ │ └── payment_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ ├── paymentsclient │ │ ├── invoice │ │ │ ├── invoice_client.go │ │ │ ├── pay_invoice_parameters.go │ │ │ └── pay_invoice_responses.go │ │ ├── models │ │ │ ├── paymentspb_authorize_payment_request.go │ │ │ ├── paymentspb_authorize_payment_response.go │ │ │ ├── paymentspb_pay_invoice_response.go │ │ │ ├── protobuf_any.go │ │ │ └── rpc_status.go │ │ ├── payment │ │ │ ├── authorize_payment_parameters.go │ │ │ ├── authorize_payment_responses.go │ │ │ └── payment_client.go │ │ └── payments_client.go │ └── paymentspb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── messages.go │ │ ├── messages.pb.go │ │ ├── messages.proto │ │ ├── mock_payments_service_client.go │ │ ├── mock_payments_service_server.go │ │ └── mock_unsafe_payments_service_server.go ├── search │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── customer_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_repository.go │ │ │ └── store_repository.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── grpc │ │ │ ├── customer_repository.go │ │ │ ├── product_repository.go │ │ │ ├── server.go │ │ │ ├── server_transaction.go │ │ │ └── store_repository.go │ │ ├── handlers │ │ │ ├── integration_events.go │ │ │ └── integration_events_transaction.go │ │ ├── models │ │ │ ├── customer.go │ │ │ ├── order.go │ │ │ ├── product.go │ │ │ └── store.go │ │ ├── postgres │ │ │ ├── customer_cache_repository.go │ │ │ ├── order_repository.go │ │ │ ├── product_cache_repository.go │ │ │ └── store_cache_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ └── searchpb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ └── api_grpc.pb.go ├── stores │ ├── buf.gen.yaml │ ├── buf.yaml │ ├── cmd │ │ └── service │ │ │ └── main.go │ ├── generate.go │ ├── internal │ │ ├── application │ │ │ ├── application.go │ │ │ ├── commands │ │ │ │ ├── add_product.go │ │ │ │ ├── create_store.go │ │ │ │ ├── decrease_product_price.go │ │ │ │ ├── disable_participation.go │ │ │ │ ├── enable_participation.go │ │ │ │ ├── increase_product_price.go │ │ │ │ ├── rebrand_product.go │ │ │ │ ├── rebrand_store.go │ │ │ │ └── remove_product.go │ │ │ ├── mock_app.go │ │ │ ├── mock_commands.go │ │ │ ├── mock_queries.go │ │ │ └── queries │ │ │ │ ├── get_catalog.go │ │ │ │ ├── get_participating_stores.go │ │ │ │ ├── get_product.go │ │ │ │ ├── get_store.go │ │ │ │ └── get_stores.go │ │ ├── constants │ │ │ └── constants.go │ │ ├── domain │ │ │ ├── catalog_repository.go │ │ │ ├── fake_catalog_repository.go │ │ │ ├── fake_mall_repository.go │ │ │ ├── fake_product_repository.go │ │ │ ├── fake_store_repository.go │ │ │ ├── mall_repository.go │ │ │ ├── mock_catalog_repository.go │ │ │ ├── mock_mall_repository.go │ │ │ ├── mock_product_repository.go │ │ │ ├── mock_store_repository.go │ │ │ ├── product.go │ │ │ ├── product_events.go │ │ │ ├── product_repository.go │ │ │ ├── product_snapshots.go │ │ │ ├── store.go │ │ │ ├── store_events.go │ │ │ ├── store_repository.go │ │ │ └── store_snapshots.go │ │ ├── grpc │ │ │ ├── server.go │ │ │ └── server_transaction.go │ │ ├── handlers │ │ │ ├── catalog.go │ │ │ ├── domain_events.go │ │ │ ├── domain_events_contract_test.go │ │ │ ├── domain_events_transaction.go │ │ │ └── mall.go │ │ ├── postgres │ │ │ ├── catalog_repository.go │ │ │ └── mall_repository.go │ │ └── rest │ │ │ ├── api.annotations.yaml │ │ │ ├── api.openapi.yaml │ │ │ ├── api.swagger.json │ │ │ ├── gateway.go │ │ │ ├── index.html │ │ │ └── swagger.go │ ├── migrations │ │ ├── 001_create_tables.sql │ │ └── migrations.go │ ├── module.go │ ├── storesclient │ │ ├── models │ │ │ ├── add_product_params_body.go │ │ │ ├── decrease_product_price_params_body.go │ │ │ ├── increase_product_price_params_body.go │ │ │ ├── protobuf_any.go │ │ │ ├── rebrand_product_params_body.go │ │ │ ├── rebrand_store_params_body.go │ │ │ ├── rpc_status.go │ │ │ ├── storespb_add_product_response.go │ │ │ ├── storespb_create_store_request.go │ │ │ ├── storespb_create_store_response.go │ │ │ ├── storespb_decrease_product_price_response.go │ │ │ ├── storespb_disable_participation_response.go │ │ │ ├── storespb_enable_participation_response.go │ │ │ ├── storespb_get_catalog_response.go │ │ │ ├── storespb_get_participating_stores_response.go │ │ │ ├── storespb_get_product_response.go │ │ │ ├── storespb_get_store_response.go │ │ │ ├── storespb_get_stores_response.go │ │ │ ├── storespb_increase_product_price_response.go │ │ │ ├── storespb_product.go │ │ │ ├── storespb_rebrand_product_response.go │ │ │ ├── storespb_rebrand_store_response.go │ │ │ ├── storespb_remove_product_response.go │ │ │ └── storespb_store.go │ │ ├── participation │ │ │ ├── disable_participation_parameters.go │ │ │ ├── disable_participation_responses.go │ │ │ ├── enable_participation_parameters.go │ │ │ ├── enable_participation_responses.go │ │ │ ├── get_participating_stores_parameters.go │ │ │ ├── get_participating_stores_responses.go │ │ │ └── participation_client.go │ │ ├── product │ │ │ ├── add_product_parameters.go │ │ │ ├── add_product_responses.go │ │ │ ├── decrease_product_price_parameters.go │ │ │ ├── decrease_product_price_responses.go │ │ │ ├── get_product_parameters.go │ │ │ ├── get_product_responses.go │ │ │ ├── get_store_products_parameters.go │ │ │ ├── get_store_products_responses.go │ │ │ ├── increase_product_price_parameters.go │ │ │ ├── increase_product_price_responses.go │ │ │ ├── product_client.go │ │ │ ├── rebrand_product_parameters.go │ │ │ ├── rebrand_product_responses.go │ │ │ ├── remove_product_parameters.go │ │ │ └── remove_product_responses.go │ │ ├── store │ │ │ ├── create_store_parameters.go │ │ │ ├── create_store_responses.go │ │ │ ├── get_store_parameters.go │ │ │ ├── get_store_responses.go │ │ │ ├── get_stores_parameters.go │ │ │ ├── get_stores_responses.go │ │ │ ├── rebrand_store_parameters.go │ │ │ ├── rebrand_store_responses.go │ │ │ └── store_client.go │ │ └── store_management_client.go │ └── storespb │ │ ├── api.pb.go │ │ ├── api.pb.gw.go │ │ ├── api.proto │ │ ├── api_grpc.pb.go │ │ ├── asyncapi.go │ │ ├── asyncapi.yaml │ │ ├── css │ │ ├── asyncapi.min.css │ │ └── global.min.css │ │ ├── events.go │ │ ├── events.pb.go │ │ ├── events.proto │ │ ├── index.html │ │ ├── js │ │ └── asyncapi-ui.min.js │ │ ├── mock_stores_service_client.go │ │ ├── mock_stores_service_server.go │ │ └── mock_unsafe_stores_service_server.go └── testing │ └── e2e │ ├── baskets_feature_test.go │ ├── customers_feature_test.go │ ├── e2e_test.go │ ├── features │ ├── baskets │ │ ├── add_item.feature │ │ ├── checkout_basket.feature │ │ └── start_basket.feature │ ├── customers │ │ └── register_customer.feature │ ├── kiosk │ │ └── shopping.feature │ ├── orders │ │ └── processing.feature │ └── stores │ │ ├── create_product.feature │ │ └── create_store.feature │ └── stores_feature_test.go ├── LICENSE └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | pact.log 3 | -------------------------------------------------------------------------------- /Chapter02/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter02/go.mod -------------------------------------------------------------------------------- /Chapter02/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter02/go.sum -------------------------------------------------------------------------------- /Chapter02/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter02/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter03/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/Makefile -------------------------------------------------------------------------------- /Chapter03/baskets/basketspb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/basketspb/api.pb.go -------------------------------------------------------------------------------- /Chapter03/baskets/basketspb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/basketspb/api.proto -------------------------------------------------------------------------------- /Chapter03/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter03/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/generate.go -------------------------------------------------------------------------------- /Chapter03/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/baskets/module.go -------------------------------------------------------------------------------- /Chapter03/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter03/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter03/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter03/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/customers/generate.go -------------------------------------------------------------------------------- /Chapter03/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/customers/module.go -------------------------------------------------------------------------------- /Chapter03/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/api_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/api_grpc.pb.go -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/messages.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/messages.pb.go -------------------------------------------------------------------------------- /Chapter03/depot/depotpb/messages.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/depotpb/messages.proto -------------------------------------------------------------------------------- /Chapter03/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/generate.go -------------------------------------------------------------------------------- /Chapter03/depot/internal/domain/bot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/internal/domain/bot.go -------------------------------------------------------------------------------- /Chapter03/depot/internal/grpc/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/internal/grpc/conn.go -------------------------------------------------------------------------------- /Chapter03/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/depot/module.go -------------------------------------------------------------------------------- /Chapter03/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/docker-compose.yml -------------------------------------------------------------------------------- /Chapter03/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/docker/.env -------------------------------------------------------------------------------- /Chapter03/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter03/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/docker/wait-for -------------------------------------------------------------------------------- /Chapter03/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/go.mod -------------------------------------------------------------------------------- /Chapter03/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/go.sum -------------------------------------------------------------------------------- /Chapter03/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/config/config.go -------------------------------------------------------------------------------- /Chapter03/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter03/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter03/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter03/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter03/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter03/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/tools.go -------------------------------------------------------------------------------- /Chapter03/internal/waiter/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/waiter/options.go -------------------------------------------------------------------------------- /Chapter03/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter03/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/web/config.go -------------------------------------------------------------------------------- /Chapter03/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter03/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/internal/web/index.html -------------------------------------------------------------------------------- /Chapter03/notifications/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/notifications/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter03/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/notifications/generate.go -------------------------------------------------------------------------------- /Chapter03/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/notifications/module.go -------------------------------------------------------------------------------- /Chapter03/notifications/notificationspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package notificationspb; 4 | -------------------------------------------------------------------------------- /Chapter03/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter03/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/ordering/generate.go -------------------------------------------------------------------------------- /Chapter03/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/ordering/module.go -------------------------------------------------------------------------------- /Chapter03/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter03/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/payments/generate.go -------------------------------------------------------------------------------- /Chapter03/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/payments/module.go -------------------------------------------------------------------------------- /Chapter03/payments/paymentspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package paymentspb; 4 | -------------------------------------------------------------------------------- /Chapter03/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter03/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter03/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/generate.go -------------------------------------------------------------------------------- /Chapter03/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/module.go -------------------------------------------------------------------------------- /Chapter03/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter03/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter03/stores/storespb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/storespb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter03/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter03/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter04/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/Makefile -------------------------------------------------------------------------------- /Chapter04/baskets/basketspb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/basketspb/api.pb.go -------------------------------------------------------------------------------- /Chapter04/baskets/basketspb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/basketspb/api.proto -------------------------------------------------------------------------------- /Chapter04/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter04/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/generate.go -------------------------------------------------------------------------------- /Chapter04/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/baskets/module.go -------------------------------------------------------------------------------- /Chapter04/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter04/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter04/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter04/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/customers/generate.go -------------------------------------------------------------------------------- /Chapter04/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/customers/module.go -------------------------------------------------------------------------------- /Chapter04/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/api_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/api_grpc.pb.go -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/messages.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/messages.pb.go -------------------------------------------------------------------------------- /Chapter04/depot/depotpb/messages.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/depotpb/messages.proto -------------------------------------------------------------------------------- /Chapter04/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/generate.go -------------------------------------------------------------------------------- /Chapter04/depot/internal/domain/bot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/internal/domain/bot.go -------------------------------------------------------------------------------- /Chapter04/depot/internal/grpc/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/internal/grpc/conn.go -------------------------------------------------------------------------------- /Chapter04/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/depot/module.go -------------------------------------------------------------------------------- /Chapter04/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/docker-compose.yml -------------------------------------------------------------------------------- /Chapter04/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/docker/.env -------------------------------------------------------------------------------- /Chapter04/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter04/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/docker/wait-for -------------------------------------------------------------------------------- /Chapter04/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/go.mod -------------------------------------------------------------------------------- /Chapter04/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/go.sum -------------------------------------------------------------------------------- /Chapter04/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/config/config.go -------------------------------------------------------------------------------- /Chapter04/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter04/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter04/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter04/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter04/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter04/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/tools.go -------------------------------------------------------------------------------- /Chapter04/internal/waiter/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/waiter/options.go -------------------------------------------------------------------------------- /Chapter04/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter04/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/web/config.go -------------------------------------------------------------------------------- /Chapter04/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter04/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/internal/web/index.html -------------------------------------------------------------------------------- /Chapter04/notifications/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/notifications/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter04/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/notifications/generate.go -------------------------------------------------------------------------------- /Chapter04/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/notifications/module.go -------------------------------------------------------------------------------- /Chapter04/notifications/notificationspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package notificationspb; 4 | -------------------------------------------------------------------------------- /Chapter04/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter04/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/ordering/generate.go -------------------------------------------------------------------------------- /Chapter04/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/ordering/module.go -------------------------------------------------------------------------------- /Chapter04/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter04/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/payments/generate.go -------------------------------------------------------------------------------- /Chapter04/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/payments/module.go -------------------------------------------------------------------------------- /Chapter04/payments/paymentspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package paymentspb; 4 | -------------------------------------------------------------------------------- /Chapter04/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter04/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter04/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/generate.go -------------------------------------------------------------------------------- /Chapter04/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/module.go -------------------------------------------------------------------------------- /Chapter04/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter04/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter04/stores/storespb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/storespb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter04/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter04/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter05/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/Makefile -------------------------------------------------------------------------------- /Chapter05/baskets/basketspb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/basketspb/api.pb.go -------------------------------------------------------------------------------- /Chapter05/baskets/basketspb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/basketspb/api.proto -------------------------------------------------------------------------------- /Chapter05/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter05/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/generate.go -------------------------------------------------------------------------------- /Chapter05/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/baskets/module.go -------------------------------------------------------------------------------- /Chapter05/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter05/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter05/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter05/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/customers/generate.go -------------------------------------------------------------------------------- /Chapter05/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/customers/module.go -------------------------------------------------------------------------------- /Chapter05/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/api_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/api_grpc.pb.go -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/messages.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/messages.pb.go -------------------------------------------------------------------------------- /Chapter05/depot/depotpb/messages.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/depotpb/messages.proto -------------------------------------------------------------------------------- /Chapter05/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/generate.go -------------------------------------------------------------------------------- /Chapter05/depot/internal/domain/bot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/internal/domain/bot.go -------------------------------------------------------------------------------- /Chapter05/depot/internal/grpc/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/internal/grpc/conn.go -------------------------------------------------------------------------------- /Chapter05/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/depot/module.go -------------------------------------------------------------------------------- /Chapter05/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/docker-compose.yml -------------------------------------------------------------------------------- /Chapter05/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/docker/.env -------------------------------------------------------------------------------- /Chapter05/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter05/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/docker/wait-for -------------------------------------------------------------------------------- /Chapter05/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/go.mod -------------------------------------------------------------------------------- /Chapter05/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/go.sum -------------------------------------------------------------------------------- /Chapter05/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/config/config.go -------------------------------------------------------------------------------- /Chapter05/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter05/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter05/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter05/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter05/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter05/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/es/event.go -------------------------------------------------------------------------------- /Chapter05/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter05/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter05/internal/registry/serde.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/registry/serde.go -------------------------------------------------------------------------------- /Chapter05/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter05/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/tools.go -------------------------------------------------------------------------------- /Chapter05/internal/waiter/options.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/waiter/options.go -------------------------------------------------------------------------------- /Chapter05/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter05/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/web/config.go -------------------------------------------------------------------------------- /Chapter05/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter05/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/internal/web/index.html -------------------------------------------------------------------------------- /Chapter05/notifications/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/notifications/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter05/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/notifications/generate.go -------------------------------------------------------------------------------- /Chapter05/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/notifications/module.go -------------------------------------------------------------------------------- /Chapter05/notifications/notificationspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package notificationspb; 4 | -------------------------------------------------------------------------------- /Chapter05/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter05/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/ordering/generate.go -------------------------------------------------------------------------------- /Chapter05/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/ordering/module.go -------------------------------------------------------------------------------- /Chapter05/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter05/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/payments/generate.go -------------------------------------------------------------------------------- /Chapter05/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/payments/module.go -------------------------------------------------------------------------------- /Chapter05/payments/paymentspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package paymentspb; 4 | -------------------------------------------------------------------------------- /Chapter05/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter05/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter05/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/generate.go -------------------------------------------------------------------------------- /Chapter05/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/module.go -------------------------------------------------------------------------------- /Chapter05/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter05/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter05/stores/storespb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/storespb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter05/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter05/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter06/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/Makefile -------------------------------------------------------------------------------- /Chapter06/baskets/basketspb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/basketspb/api.pb.go -------------------------------------------------------------------------------- /Chapter06/baskets/basketspb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/basketspb/api.proto -------------------------------------------------------------------------------- /Chapter06/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter06/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/generate.go -------------------------------------------------------------------------------- /Chapter06/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/baskets/module.go -------------------------------------------------------------------------------- /Chapter06/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter06/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter06/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter06/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/customers/generate.go -------------------------------------------------------------------------------- /Chapter06/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/customers/module.go -------------------------------------------------------------------------------- /Chapter06/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/api.pb.gw.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/api.pb.gw.go -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/api_grpc.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/api_grpc.pb.go -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/messages.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/messages.pb.go -------------------------------------------------------------------------------- /Chapter06/depot/depotpb/messages.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/depotpb/messages.proto -------------------------------------------------------------------------------- /Chapter06/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/generate.go -------------------------------------------------------------------------------- /Chapter06/depot/internal/domain/bot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/internal/domain/bot.go -------------------------------------------------------------------------------- /Chapter06/depot/internal/grpc/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/internal/grpc/conn.go -------------------------------------------------------------------------------- /Chapter06/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/depot/module.go -------------------------------------------------------------------------------- /Chapter06/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/docker-compose.yml -------------------------------------------------------------------------------- /Chapter06/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/docker/.env -------------------------------------------------------------------------------- /Chapter06/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter06/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/docker/wait-for -------------------------------------------------------------------------------- /Chapter06/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/go.mod -------------------------------------------------------------------------------- /Chapter06/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/go.sum -------------------------------------------------------------------------------- /Chapter06/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter06/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter06/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/am/message.go -------------------------------------------------------------------------------- /Chapter06/internal/am/raw_message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/am/raw_message.go -------------------------------------------------------------------------------- /Chapter06/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/config/config.go -------------------------------------------------------------------------------- /Chapter06/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter06/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter06/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter06/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter06/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter06/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/es/event.go -------------------------------------------------------------------------------- /Chapter06/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter06/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter06/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter06/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/tools.go -------------------------------------------------------------------------------- /Chapter06/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter06/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/web/config.go -------------------------------------------------------------------------------- /Chapter06/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter06/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/internal/web/index.html -------------------------------------------------------------------------------- /Chapter06/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter06/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/notifications/generate.go -------------------------------------------------------------------------------- /Chapter06/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/notifications/module.go -------------------------------------------------------------------------------- /Chapter06/notifications/notificationspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package notificationspb; 4 | -------------------------------------------------------------------------------- /Chapter06/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter06/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/ordering/generate.go -------------------------------------------------------------------------------- /Chapter06/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/ordering/module.go -------------------------------------------------------------------------------- /Chapter06/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter06/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/payments/generate.go -------------------------------------------------------------------------------- /Chapter06/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/payments/module.go -------------------------------------------------------------------------------- /Chapter06/payments/paymentspb/messages.proto: -------------------------------------------------------------------------------- 1 | syntax = "proto3"; 2 | 3 | package paymentspb; 4 | -------------------------------------------------------------------------------- /Chapter06/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter06/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter06/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/generate.go -------------------------------------------------------------------------------- /Chapter06/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/module.go -------------------------------------------------------------------------------- /Chapter06/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter06/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter06/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter06/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter06/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter07/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/Makefile -------------------------------------------------------------------------------- /Chapter07/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter07/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/baskets/generate.go -------------------------------------------------------------------------------- /Chapter07/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/baskets/module.go -------------------------------------------------------------------------------- /Chapter07/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter07/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter07/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter07/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/customers/generate.go -------------------------------------------------------------------------------- /Chapter07/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/customers/module.go -------------------------------------------------------------------------------- /Chapter07/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter07/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter07/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter07/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/generate.go -------------------------------------------------------------------------------- /Chapter07/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/depot/module.go -------------------------------------------------------------------------------- /Chapter07/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/docker-compose.yml -------------------------------------------------------------------------------- /Chapter07/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/docker/.env -------------------------------------------------------------------------------- /Chapter07/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter07/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/docker/wait-for -------------------------------------------------------------------------------- /Chapter07/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/go.mod -------------------------------------------------------------------------------- /Chapter07/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/go.sum -------------------------------------------------------------------------------- /Chapter07/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter07/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter07/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/am/message.go -------------------------------------------------------------------------------- /Chapter07/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/config/config.go -------------------------------------------------------------------------------- /Chapter07/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter07/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter07/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter07/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter07/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter07/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/es/event.go -------------------------------------------------------------------------------- /Chapter07/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter07/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter07/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter07/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/tools.go -------------------------------------------------------------------------------- /Chapter07/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter07/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/web/config.go -------------------------------------------------------------------------------- /Chapter07/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter07/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/internal/web/index.html -------------------------------------------------------------------------------- /Chapter07/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter07/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/notifications/generate.go -------------------------------------------------------------------------------- /Chapter07/notifications/internal/customer_cache_repository.go: -------------------------------------------------------------------------------- 1 | package internal 2 | -------------------------------------------------------------------------------- /Chapter07/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/notifications/module.go -------------------------------------------------------------------------------- /Chapter07/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter07/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/ordering/generate.go -------------------------------------------------------------------------------- /Chapter07/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/ordering/module.go -------------------------------------------------------------------------------- /Chapter07/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter07/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/payments/generate.go -------------------------------------------------------------------------------- /Chapter07/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/payments/module.go -------------------------------------------------------------------------------- /Chapter07/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/buf.yaml -------------------------------------------------------------------------------- /Chapter07/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/generate.go -------------------------------------------------------------------------------- /Chapter07/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/module.go -------------------------------------------------------------------------------- /Chapter07/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter07/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter07/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter07/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter07/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/generate.go -------------------------------------------------------------------------------- /Chapter07/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/module.go -------------------------------------------------------------------------------- /Chapter07/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter07/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter07/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter07/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter07/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter08/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/Makefile -------------------------------------------------------------------------------- /Chapter08/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter08/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/baskets/generate.go -------------------------------------------------------------------------------- /Chapter08/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/baskets/module.go -------------------------------------------------------------------------------- /Chapter08/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter08/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter08/cosec/internal/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/cosec/internal/saga.go -------------------------------------------------------------------------------- /Chapter08/cosec/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/cosec/module.go -------------------------------------------------------------------------------- /Chapter08/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter08/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/customers/generate.go -------------------------------------------------------------------------------- /Chapter08/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/customers/module.go -------------------------------------------------------------------------------- /Chapter08/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter08/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter08/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter08/depot/depotpb/messages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/depotpb/messages.go -------------------------------------------------------------------------------- /Chapter08/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/generate.go -------------------------------------------------------------------------------- /Chapter08/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/depot/module.go -------------------------------------------------------------------------------- /Chapter08/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/docker-compose.yml -------------------------------------------------------------------------------- /Chapter08/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/docker/.env -------------------------------------------------------------------------------- /Chapter08/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter08/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/docker/wait-for -------------------------------------------------------------------------------- /Chapter08/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/go.mod -------------------------------------------------------------------------------- /Chapter08/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/go.sum -------------------------------------------------------------------------------- /Chapter08/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter08/internal/am/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/command.go -------------------------------------------------------------------------------- /Chapter08/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter08/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/message.go -------------------------------------------------------------------------------- /Chapter08/internal/am/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/am/reply.go -------------------------------------------------------------------------------- /Chapter08/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/config/config.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/command.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter08/internal/ddd/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/ddd/reply.go -------------------------------------------------------------------------------- /Chapter08/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter08/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/es/event.go -------------------------------------------------------------------------------- /Chapter08/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter08/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter08/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter08/internal/sec/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/sec/saga.go -------------------------------------------------------------------------------- /Chapter08/internal/sec/saga_step.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/sec/saga_step.go -------------------------------------------------------------------------------- /Chapter08/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/tools.go -------------------------------------------------------------------------------- /Chapter08/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter08/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/web/config.go -------------------------------------------------------------------------------- /Chapter08/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter08/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/internal/web/index.html -------------------------------------------------------------------------------- /Chapter08/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter08/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/notifications/generate.go -------------------------------------------------------------------------------- /Chapter08/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/notifications/module.go -------------------------------------------------------------------------------- /Chapter08/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter08/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/ordering/generate.go -------------------------------------------------------------------------------- /Chapter08/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/ordering/module.go -------------------------------------------------------------------------------- /Chapter08/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter08/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/payments/generate.go -------------------------------------------------------------------------------- /Chapter08/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/payments/module.go -------------------------------------------------------------------------------- /Chapter08/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/buf.yaml -------------------------------------------------------------------------------- /Chapter08/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/generate.go -------------------------------------------------------------------------------- /Chapter08/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/module.go -------------------------------------------------------------------------------- /Chapter08/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter08/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter08/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter08/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter08/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/generate.go -------------------------------------------------------------------------------- /Chapter08/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/module.go -------------------------------------------------------------------------------- /Chapter08/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter08/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter08/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter08/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter08/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter09/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/Makefile -------------------------------------------------------------------------------- /Chapter09/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter09/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/baskets/generate.go -------------------------------------------------------------------------------- /Chapter09/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/baskets/module.go -------------------------------------------------------------------------------- /Chapter09/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter09/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter09/cosec/internal/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/cosec/internal/saga.go -------------------------------------------------------------------------------- /Chapter09/cosec/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/cosec/module.go -------------------------------------------------------------------------------- /Chapter09/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter09/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/customers/generate.go -------------------------------------------------------------------------------- /Chapter09/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/customers/module.go -------------------------------------------------------------------------------- /Chapter09/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter09/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter09/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter09/depot/depotpb/messages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/depotpb/messages.go -------------------------------------------------------------------------------- /Chapter09/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/generate.go -------------------------------------------------------------------------------- /Chapter09/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/depot/module.go -------------------------------------------------------------------------------- /Chapter09/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/docker-compose.yml -------------------------------------------------------------------------------- /Chapter09/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/docker/.env -------------------------------------------------------------------------------- /Chapter09/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter09/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/docker/wait-for -------------------------------------------------------------------------------- /Chapter09/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/go.mod -------------------------------------------------------------------------------- /Chapter09/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/go.sum -------------------------------------------------------------------------------- /Chapter09/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter09/internal/am/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/command.go -------------------------------------------------------------------------------- /Chapter09/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter09/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/message.go -------------------------------------------------------------------------------- /Chapter09/internal/am/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/am/reply.go -------------------------------------------------------------------------------- /Chapter09/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/config/config.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/command.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter09/internal/ddd/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/ddd/reply.go -------------------------------------------------------------------------------- /Chapter09/internal/di/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/di/api.go -------------------------------------------------------------------------------- /Chapter09/internal/di/container.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/di/container.go -------------------------------------------------------------------------------- /Chapter09/internal/di/tracked.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/di/tracked.go -------------------------------------------------------------------------------- /Chapter09/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter09/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/es/event.go -------------------------------------------------------------------------------- /Chapter09/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter09/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter09/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter09/internal/sec/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/sec/saga.go -------------------------------------------------------------------------------- /Chapter09/internal/sec/saga_step.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/sec/saga_step.go -------------------------------------------------------------------------------- /Chapter09/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/tools.go -------------------------------------------------------------------------------- /Chapter09/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter09/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/web/config.go -------------------------------------------------------------------------------- /Chapter09/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter09/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/internal/web/index.html -------------------------------------------------------------------------------- /Chapter09/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter09/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/notifications/generate.go -------------------------------------------------------------------------------- /Chapter09/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/notifications/module.go -------------------------------------------------------------------------------- /Chapter09/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter09/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/ordering/generate.go -------------------------------------------------------------------------------- /Chapter09/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/ordering/module.go -------------------------------------------------------------------------------- /Chapter09/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter09/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/payments/generate.go -------------------------------------------------------------------------------- /Chapter09/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/payments/module.go -------------------------------------------------------------------------------- /Chapter09/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/buf.yaml -------------------------------------------------------------------------------- /Chapter09/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/generate.go -------------------------------------------------------------------------------- /Chapter09/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/module.go -------------------------------------------------------------------------------- /Chapter09/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter09/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter09/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter09/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter09/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/generate.go -------------------------------------------------------------------------------- /Chapter09/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/module.go -------------------------------------------------------------------------------- /Chapter09/stores/stores_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/stores_test.go -------------------------------------------------------------------------------- /Chapter09/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter09/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter09/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter09/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter10/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/Makefile -------------------------------------------------------------------------------- /Chapter10/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter10/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/generate.go -------------------------------------------------------------------------------- /Chapter10/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/module.go -------------------------------------------------------------------------------- /Chapter10/baskets/ui/client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/ui/client.js -------------------------------------------------------------------------------- /Chapter10/baskets/ui/client.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/ui/client.spec.js -------------------------------------------------------------------------------- /Chapter10/baskets/ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/baskets/ui/package.json -------------------------------------------------------------------------------- /Chapter10/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter10/cmd/mallbots/monolith.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/cmd/mallbots/monolith.go -------------------------------------------------------------------------------- /Chapter10/cosec/internal/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/cosec/internal/saga.go -------------------------------------------------------------------------------- /Chapter10/cosec/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/cosec/module.go -------------------------------------------------------------------------------- /Chapter10/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter10/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/customers/generate.go -------------------------------------------------------------------------------- /Chapter10/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/customers/module.go -------------------------------------------------------------------------------- /Chapter10/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter10/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter10/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter10/depot/depotpb/messages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/depotpb/messages.go -------------------------------------------------------------------------------- /Chapter10/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/generate.go -------------------------------------------------------------------------------- /Chapter10/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/depot/module.go -------------------------------------------------------------------------------- /Chapter10/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/docker-compose.yml -------------------------------------------------------------------------------- /Chapter10/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/docker/.env -------------------------------------------------------------------------------- /Chapter10/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter10/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/docker/wait-for -------------------------------------------------------------------------------- /Chapter10/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/go.mod -------------------------------------------------------------------------------- /Chapter10/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/go.sum -------------------------------------------------------------------------------- /Chapter10/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter10/internal/am/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/command.go -------------------------------------------------------------------------------- /Chapter10/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter10/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/message.go -------------------------------------------------------------------------------- /Chapter10/internal/am/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/am/reply.go -------------------------------------------------------------------------------- /Chapter10/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/config/config.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/command.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/generate.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter10/internal/ddd/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/ddd/reply.go -------------------------------------------------------------------------------- /Chapter10/internal/di/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/di/api.go -------------------------------------------------------------------------------- /Chapter10/internal/di/container.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/di/container.go -------------------------------------------------------------------------------- /Chapter10/internal/di/tracked.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/di/tracked.go -------------------------------------------------------------------------------- /Chapter10/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter10/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/es/event.go -------------------------------------------------------------------------------- /Chapter10/internal/es/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/es/generate.go -------------------------------------------------------------------------------- /Chapter10/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter10/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter10/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter10/internal/sec/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/sec/saga.go -------------------------------------------------------------------------------- /Chapter10/internal/sec/saga_step.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/sec/saga_step.go -------------------------------------------------------------------------------- /Chapter10/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/tools.go -------------------------------------------------------------------------------- /Chapter10/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter10/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/web/config.go -------------------------------------------------------------------------------- /Chapter10/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter10/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/internal/web/index.html -------------------------------------------------------------------------------- /Chapter10/migrations/migrations.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/migrations/migrations.go -------------------------------------------------------------------------------- /Chapter10/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter10/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/notifications/generate.go -------------------------------------------------------------------------------- /Chapter10/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/notifications/module.go -------------------------------------------------------------------------------- /Chapter10/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter10/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/ordering/generate.go -------------------------------------------------------------------------------- /Chapter10/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/ordering/module.go -------------------------------------------------------------------------------- /Chapter10/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter10/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/payments/generate.go -------------------------------------------------------------------------------- /Chapter10/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/payments/module.go -------------------------------------------------------------------------------- /Chapter10/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/buf.yaml -------------------------------------------------------------------------------- /Chapter10/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/generate.go -------------------------------------------------------------------------------- /Chapter10/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/module.go -------------------------------------------------------------------------------- /Chapter10/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter10/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter10/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter10/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter10/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/generate.go -------------------------------------------------------------------------------- /Chapter10/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/module.go -------------------------------------------------------------------------------- /Chapter10/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter10/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter10/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter10/testing/e2e/baskets_context.go: -------------------------------------------------------------------------------- 1 | package e2e 2 | -------------------------------------------------------------------------------- /Chapter10/testing/e2e/e2e_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/testing/e2e/e2e_test.go -------------------------------------------------------------------------------- /Chapter10/testing/e2e/features/baskets/checkout_basket.feature: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Chapter10/testing/e2e/features/kiosk/shopping.feature: -------------------------------------------------------------------------------- 1 | Feature: Kiosk Shopping 2 | 3 | -------------------------------------------------------------------------------- /Chapter10/testing/e2e/features/orders/processing.feature: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Chapter10/testing/e2e/suite.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter10/testing/e2e/suite.go -------------------------------------------------------------------------------- /Chapter11/.dockerignore: -------------------------------------------------------------------------------- 1 | **/node_modules/** 2 | 3 | deployment 4 | -------------------------------------------------------------------------------- /Chapter11/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/Makefile -------------------------------------------------------------------------------- /Chapter11/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter11/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/generate.go -------------------------------------------------------------------------------- /Chapter11/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/module.go -------------------------------------------------------------------------------- /Chapter11/baskets/ui/client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/ui/client.js -------------------------------------------------------------------------------- /Chapter11/baskets/ui/client.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/ui/client.spec.js -------------------------------------------------------------------------------- /Chapter11/baskets/ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/baskets/ui/package.json -------------------------------------------------------------------------------- /Chapter11/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter11/cosec/cmd/service/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/cosec/cmd/service/main.go -------------------------------------------------------------------------------- /Chapter11/cosec/internal/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/cosec/internal/saga.go -------------------------------------------------------------------------------- /Chapter11/cosec/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/cosec/module.go -------------------------------------------------------------------------------- /Chapter11/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter11/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/customers/generate.go -------------------------------------------------------------------------------- /Chapter11/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/customers/module.go -------------------------------------------------------------------------------- /Chapter11/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter11/depot/cmd/service/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/cmd/service/main.go -------------------------------------------------------------------------------- /Chapter11/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter11/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter11/depot/depotpb/messages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/depotpb/messages.go -------------------------------------------------------------------------------- /Chapter11/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/generate.go -------------------------------------------------------------------------------- /Chapter11/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/depot/module.go -------------------------------------------------------------------------------- /Chapter11/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/docker-compose.yml -------------------------------------------------------------------------------- /Chapter11/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/docker/.env -------------------------------------------------------------------------------- /Chapter11/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter11/docker/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/docker/nginx.conf -------------------------------------------------------------------------------- /Chapter11/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/docker/wait-for -------------------------------------------------------------------------------- /Chapter11/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/go.mod -------------------------------------------------------------------------------- /Chapter11/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/go.sum -------------------------------------------------------------------------------- /Chapter11/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter11/internal/am/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/command.go -------------------------------------------------------------------------------- /Chapter11/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter11/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/message.go -------------------------------------------------------------------------------- /Chapter11/internal/am/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/am/reply.go -------------------------------------------------------------------------------- /Chapter11/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/config/config.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/command.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/generate.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter11/internal/ddd/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/ddd/reply.go -------------------------------------------------------------------------------- /Chapter11/internal/di/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/di/api.go -------------------------------------------------------------------------------- /Chapter11/internal/di/container.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/di/container.go -------------------------------------------------------------------------------- /Chapter11/internal/di/tracked.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/di/tracked.go -------------------------------------------------------------------------------- /Chapter11/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter11/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/es/event.go -------------------------------------------------------------------------------- /Chapter11/internal/es/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/es/generate.go -------------------------------------------------------------------------------- /Chapter11/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter11/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter11/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter11/internal/sec/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/sec/saga.go -------------------------------------------------------------------------------- /Chapter11/internal/sec/saga_step.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/sec/saga_step.go -------------------------------------------------------------------------------- /Chapter11/internal/system/system.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/system/system.go -------------------------------------------------------------------------------- /Chapter11/internal/system/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/system/types.go -------------------------------------------------------------------------------- /Chapter11/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/tools.go -------------------------------------------------------------------------------- /Chapter11/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter11/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/web/config.go -------------------------------------------------------------------------------- /Chapter11/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter11/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/internal/web/index.html -------------------------------------------------------------------------------- /Chapter11/migrations/migrations.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/migrations/migrations.go -------------------------------------------------------------------------------- /Chapter11/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter11/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/notifications/generate.go -------------------------------------------------------------------------------- /Chapter11/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/notifications/module.go -------------------------------------------------------------------------------- /Chapter11/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter11/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/ordering/generate.go -------------------------------------------------------------------------------- /Chapter11/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/ordering/module.go -------------------------------------------------------------------------------- /Chapter11/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter11/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/payments/generate.go -------------------------------------------------------------------------------- /Chapter11/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/payments/module.go -------------------------------------------------------------------------------- /Chapter11/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/buf.yaml -------------------------------------------------------------------------------- /Chapter11/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/generate.go -------------------------------------------------------------------------------- /Chapter11/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/module.go -------------------------------------------------------------------------------- /Chapter11/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter11/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter11/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter11/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter11/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/generate.go -------------------------------------------------------------------------------- /Chapter11/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/module.go -------------------------------------------------------------------------------- /Chapter11/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter11/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter11/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter11/testing/e2e/e2e_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter11/testing/e2e/e2e_test.go -------------------------------------------------------------------------------- /Chapter11/testing/e2e/features/baskets/checkout_basket.feature: -------------------------------------------------------------------------------- 1 | Feature: Checking out baskets 2 | -------------------------------------------------------------------------------- /Chapter11/testing/e2e/features/kiosk/shopping.feature: -------------------------------------------------------------------------------- 1 | Feature: Kiosk Shopping 2 | 3 | -------------------------------------------------------------------------------- /Chapter11/testing/e2e/features/orders/processing.feature: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Chapter12/.dockerignore: -------------------------------------------------------------------------------- 1 | **/node_modules/** 2 | 3 | deployment 4 | -------------------------------------------------------------------------------- /Chapter12/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/Makefile -------------------------------------------------------------------------------- /Chapter12/baskets/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/baskets/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/buf.yaml -------------------------------------------------------------------------------- /Chapter12/baskets/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/generate.go -------------------------------------------------------------------------------- /Chapter12/baskets/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/module.go -------------------------------------------------------------------------------- /Chapter12/baskets/ui/client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/ui/client.js -------------------------------------------------------------------------------- /Chapter12/baskets/ui/client.spec.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/ui/client.spec.js -------------------------------------------------------------------------------- /Chapter12/baskets/ui/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/baskets/ui/package.json -------------------------------------------------------------------------------- /Chapter12/cmd/busywork/client.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cmd/busywork/client.go -------------------------------------------------------------------------------- /Chapter12/cmd/busywork/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cmd/busywork/main.go -------------------------------------------------------------------------------- /Chapter12/cmd/mallbots/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cmd/mallbots/main.go -------------------------------------------------------------------------------- /Chapter12/cosec/cmd/service/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cosec/cmd/service/main.go -------------------------------------------------------------------------------- /Chapter12/cosec/internal/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cosec/internal/saga.go -------------------------------------------------------------------------------- /Chapter12/cosec/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/cosec/module.go -------------------------------------------------------------------------------- /Chapter12/create_order.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/create_order.http -------------------------------------------------------------------------------- /Chapter12/customers/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/customers/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/customers/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/customers/buf.yaml -------------------------------------------------------------------------------- /Chapter12/customers/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/customers/generate.go -------------------------------------------------------------------------------- /Chapter12/customers/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/customers/module.go -------------------------------------------------------------------------------- /Chapter12/depot/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/depot/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/buf.yaml -------------------------------------------------------------------------------- /Chapter12/depot/cmd/service/main.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/cmd/service/main.go -------------------------------------------------------------------------------- /Chapter12/depot/depotpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/depotpb/api.pb.go -------------------------------------------------------------------------------- /Chapter12/depot/depotpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/depotpb/api.proto -------------------------------------------------------------------------------- /Chapter12/depot/depotpb/messages.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/depotpb/messages.go -------------------------------------------------------------------------------- /Chapter12/depot/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/generate.go -------------------------------------------------------------------------------- /Chapter12/depot/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/depot/module.go -------------------------------------------------------------------------------- /Chapter12/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/docker-compose.yml -------------------------------------------------------------------------------- /Chapter12/docker/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/docker/.env -------------------------------------------------------------------------------- /Chapter12/docker/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/docker/Dockerfile -------------------------------------------------------------------------------- /Chapter12/docker/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/docker/nginx.conf -------------------------------------------------------------------------------- /Chapter12/docker/wait-for: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/docker/wait-for -------------------------------------------------------------------------------- /Chapter12/go.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/go.mod -------------------------------------------------------------------------------- /Chapter12/go.sum: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/go.sum -------------------------------------------------------------------------------- /Chapter12/internal/am/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/am/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/internal/am/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/am/buf.yaml -------------------------------------------------------------------------------- /Chapter12/internal/am/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/am/generate.go -------------------------------------------------------------------------------- /Chapter12/internal/am/message.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/am/message.go -------------------------------------------------------------------------------- /Chapter12/internal/am/middleware.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/am/middleware.go -------------------------------------------------------------------------------- /Chapter12/internal/amotel/trace.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/amotel/trace.go -------------------------------------------------------------------------------- /Chapter12/internal/amprom/sent.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/amprom/sent.go -------------------------------------------------------------------------------- /Chapter12/internal/config/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/config/config.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/aggregate.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/command.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/command.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/entity.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/entity.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/event.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/generate.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/metadata.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/metadata.go -------------------------------------------------------------------------------- /Chapter12/internal/ddd/reply.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/ddd/reply.go -------------------------------------------------------------------------------- /Chapter12/internal/di/api.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/di/api.go -------------------------------------------------------------------------------- /Chapter12/internal/di/container.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/di/container.go -------------------------------------------------------------------------------- /Chapter12/internal/di/tracked.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/di/tracked.go -------------------------------------------------------------------------------- /Chapter12/internal/es/aggregate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/es/aggregate.go -------------------------------------------------------------------------------- /Chapter12/internal/es/event.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/es/event.go -------------------------------------------------------------------------------- /Chapter12/internal/es/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/es/generate.go -------------------------------------------------------------------------------- /Chapter12/internal/es/snapshot.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/es/snapshot.go -------------------------------------------------------------------------------- /Chapter12/internal/logger/logger.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/logger/logger.go -------------------------------------------------------------------------------- /Chapter12/internal/rpc/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/rpc/config.go -------------------------------------------------------------------------------- /Chapter12/internal/rpc/conn.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/rpc/conn.go -------------------------------------------------------------------------------- /Chapter12/internal/sec/saga.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/sec/saga.go -------------------------------------------------------------------------------- /Chapter12/internal/sec/saga_step.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/sec/saga_step.go -------------------------------------------------------------------------------- /Chapter12/internal/system/system.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/system/system.go -------------------------------------------------------------------------------- /Chapter12/internal/system/types.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/system/types.go -------------------------------------------------------------------------------- /Chapter12/internal/tools.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/tools.go -------------------------------------------------------------------------------- /Chapter12/internal/waiter/waiter.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/waiter/waiter.go -------------------------------------------------------------------------------- /Chapter12/internal/web/config.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/web/config.go -------------------------------------------------------------------------------- /Chapter12/internal/web/embed.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/web/embed.go -------------------------------------------------------------------------------- /Chapter12/internal/web/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/internal/web/index.html -------------------------------------------------------------------------------- /Chapter12/migrations/migrations.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/migrations/migrations.go -------------------------------------------------------------------------------- /Chapter12/notifications/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/notifications/buf.yaml -------------------------------------------------------------------------------- /Chapter12/notifications/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/notifications/generate.go -------------------------------------------------------------------------------- /Chapter12/notifications/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/notifications/module.go -------------------------------------------------------------------------------- /Chapter12/ordering/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/ordering/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/ordering/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/ordering/buf.yaml -------------------------------------------------------------------------------- /Chapter12/ordering/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/ordering/generate.go -------------------------------------------------------------------------------- /Chapter12/ordering/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/ordering/module.go -------------------------------------------------------------------------------- /Chapter12/payments/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/payments/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/payments/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/payments/buf.yaml -------------------------------------------------------------------------------- /Chapter12/payments/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/payments/generate.go -------------------------------------------------------------------------------- /Chapter12/payments/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/payments/module.go -------------------------------------------------------------------------------- /Chapter12/search/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/search/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/buf.yaml -------------------------------------------------------------------------------- /Chapter12/search/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/generate.go -------------------------------------------------------------------------------- /Chapter12/search/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/module.go -------------------------------------------------------------------------------- /Chapter12/search/searchpb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/searchpb/api.pb.go -------------------------------------------------------------------------------- /Chapter12/search/searchpb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/search/searchpb/api.proto -------------------------------------------------------------------------------- /Chapter12/stores/buf.gen.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/buf.gen.yaml -------------------------------------------------------------------------------- /Chapter12/stores/buf.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/buf.yaml -------------------------------------------------------------------------------- /Chapter12/stores/generate.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/generate.go -------------------------------------------------------------------------------- /Chapter12/stores/module.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/module.go -------------------------------------------------------------------------------- /Chapter12/stores/storespb/api.pb.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/storespb/api.pb.go -------------------------------------------------------------------------------- /Chapter12/stores/storespb/api.proto: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/storespb/api.proto -------------------------------------------------------------------------------- /Chapter12/stores/storespb/events.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/stores/storespb/events.go -------------------------------------------------------------------------------- /Chapter12/testing/e2e/e2e_test.go: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/Chapter12/testing/e2e/e2e_test.go -------------------------------------------------------------------------------- /Chapter12/testing/e2e/features/baskets/checkout_basket.feature: -------------------------------------------------------------------------------- 1 | Feature: Checking out baskets 2 | -------------------------------------------------------------------------------- /Chapter12/testing/e2e/features/kiosk/shopping.feature: -------------------------------------------------------------------------------- 1 | Feature: Kiosk Shopping 2 | 3 | -------------------------------------------------------------------------------- /Chapter12/testing/e2e/features/orders/processing.feature: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Event-Driven-Architecture-in-Golang/HEAD/README.md --------------------------------------------------------------------------------