Designing distributed systems using NALSD flashcards