Ενδιαφέρουσα ερώτηση και χρήσιμη για συζήτηση στο μάθημα.
Το CLI λειτουργικά είναι access point οπότε μία επιλογή είναι να θεωρήσουμε ότι το υλοποιούμε ανεξάρτητα από τα υπόλοιπα.
Ωστόσο, η συντήρηση μιας τέτοιας αρχιτεκτονικής επιλογής είναι δύσκολη. Αν αλλάξει κάτι στη βάση πχ, πρέπει να ενημερωθούν 2 δρόμοι μέχρι τον καταναλωτή του CLI / API αν έχεις ανεξάρτητες υλοποιήσεις. Αυτό σημαίνει χρόνος και περιθώριο για σφάλματα, όσο καλή διαχείριση του κώδικα και να κάνεις. Το αν η διαθεσιμότητα θα είναι μεγαλύτερη εξαρτάται από άλλα πράγματα: πού τρέχει το cli και πού το API.
Η δική μας ζητούμενη αρχιτεκτονική επιλογή είναι αυτή που έχουμε μόνο μία υλοποίηση της SQL (γενικά της άμεσης πρόσβασης στη βάση), αυτή του API.
Υπάρχουν tradeoffs, αλλά σαν πρακτική είναι κατά τη γνώμη μου πιο σταθερή και πιο συντηρήσιμη. Δεν είναι θέμα "σωστού" ή "λάθους".