Introducing our e-commerce app
The e-commerce app we will be building will be a simple online shopping application with the following features for users:
- Browsing through the products
- Adding/removing/updating the products in the cart
- Placing an order
- Modifying the shipping address
- Support for a single currency
E-commerce is a very popular domain. If we look at the features, we can divide the application into the following subdomains using bounded contexts:
- Users: This subdomain is related to users. We’ll add the
users
RESTful web service, which provides REST APIs for user management. - Carts: This subdomain is related to the cart. We’ll add the
carts
RESTful web service, which provides REST APIs for cart management. Users can perform CRUD operations on cart items. - Products: This subdomain is related to the products catalog. We’ll add the
products
RESTful web service, which provides REST APIs to search and retrieve the products. - Orders: This subdomain is related to orders. We’ll add the
orders
RESTful web service, which provides REST APIs for users to place orders. - Payments: This subdomain is related to payments. We’ll add the
payments
RESTful web service, which provides REST APIs for payment processing. - Shippings: This subdomain is related to shipping. We’ll add the
shippings
RESTful web service, which provides REST APIs for order tracking and shipping.
Here’s a visual representation of our app’s architecture:
Figure 1.1 – The e-commerce app architecture
We’ll implement a RESTful web service for each of the subdomains. We’ll keep the implementation simple, and we will focus on learning these concepts throughout this book.