J J Wright wrote:This thread might help
J J Wright wrote:
Are you saying your requirements explicitly include an "enter shipping address" step in the main flow of the check-out use case? Or are you saying, I don't see a problem with adding my own steps in order to fit my design? I'd be very cautious if it's the latter.
Leave the business decisions to the domain experts.
It's possible to implement a system without DB. but you have to have some sort of data repository such as system files. For example, you need provide shipping method selections and credit card type selections. such selection information should come from business tier other than harcoded in your jsp files.
Although you can argue about that here but there are some best practices in this field. The assignment has an availability requirement. such availability means many things not just mean your web site is still running.
J J Wright wrote:Does your check-out use case include a step for entering a shipping address? If no, then where does it come from?
Where does your product catalog come from?
Not only this - almost all information in modern web sites is dynamic, therefore configuration/customization is an essential feature leading to logical decision to store this data in DB, but I should admit that he is right that nowhere has been mentioned this in use cases, neither system requirements, so in sake of theory I think he could provide design without DB and still pass the test. It even might be explicitly mentioned in assumption section.
Just to mention, the shopping process in real life is asynchronous and long-time consuming, definitely longer than a single web session. Think about sending mail with receipt, confirmation mail, report mail for shipping progress, promotion emails, credit card fraud detection, etc. Often the exact payment processing is taking more than one day for fraud prevention reasons and so on and so on
It's up to you where you'd put the border line, that's why there is assumptions section, hence if you decide no DB, it won't be mistake, but this might open questions about reliability (check about ACID) IMHO.
I designed my architecture with DB because the system won't be reliable enough if doesn't store transaction, user and order information.