Functional Requirements
Here are the basic features an e-commerce website should include:
Sellers should be able to add, delete and modify products they want to sell.
The website should include a catalog of products.
Buyers can search products by name, keyword or category.
Buyers can add, delete or update items in a cart.
Buyers can purchase items in the cart and make payments.
Buyers can view their previous orders.
Buyers can review and rate purchased products.
Non Functional Requirements
High availability
High consistency
Low latency
Maintaining all three non-functional requirements at all times is difficult, especially with the high traffic that the website will need to handle. However, different components of the system architecture can have different priorities.
For example, payment service and inventory management will need to be highly consistent. Availability is of low priority in this case. Search service, on the other hand, should be highly available and have low latency, even at the cost of consistency. In other words, it’s acceptable if the search service is eventually consistent.