Architecture & System Design Flashcards
7 cards from real POC practice questions. Tap to flip, then mark Knew It or Still Learning โ missed cards come back until you master them.
Read the first 7 Architecture & System Design flashcards as text
Which Python design pattern ensures a class has only one instance and provides a global access point to it?
Answer: Singleton
The Singleton pattern restricts instantiation to one object by controlling the class's __new__ or __init__ method.
In a Python microservices architecture, what is the primary purpose of an API Gateway?
Answer: To serve as a single entry point routing requests to backend services
An API Gateway acts as a reverse proxy that routes client requests to appropriate microservices and can handle cross-cutting concerns like auth and rate limiting.
Which Python library is commonly used to implement asynchronous task queues in a distributed system?
Answer: Celery
Celery is a distributed task queue library for Python that enables offloading work to background workers using brokers like Redis or RabbitMQ.
What does the acronym SOLID stand for in object-oriented design as applied to Python?
Answer: Single, Open, Liskov, Interface, Dependency
SOLID stands for Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion principles.
When designing a Python system that must handle millions of events per second, which architecture pattern is most appropriate?
Answer: Event-driven architecture with message streaming
Event-driven architecture with message streaming (e.g., Kafka) decouples producers and consumers, enabling high-throughput real-time processing.
In Python, which module provides the abstract base class infrastructure used to enforce interface contracts?
Answer: abc
The `abc` module provides the ABCMeta metaclass and @abstractmethod decorator to define and enforce abstract interfaces in Python.
What is the key difference between horizontal and vertical scaling in a Python web application context?
Answer: Horizontal adds more servers; vertical adds more resources to existing servers
Horizontal scaling (scale out) adds more server instances, while vertical scaling (scale up) increases CPU/RAM on existing servers.