Preplp
System Engineer
Session 17System Design~45 min

Database Design

15 questions — answer mentally, then read the explanations

Track progress0/21 days
x

What you'll learn

Database Design, Real-Time SystemsReal-Time Systems, WebSocketReal-Time Systems, Presence FunctionalitySystem Design, Real-Time Systems, ScalabilitySystem Design, Real-Time SystemsSystem Design, Security, Real-Time Systems
  • Try to answer each question before reading the explanation
  • Cover Database Design topics in system design

Questions

Read each question and options, then check the explanation below.

Which database design approach is most suitable for storing chat messages in a real-time chat application?

  • A. Relational Database
  • B. NoSQL Database
  • C. Hierarchical Database
  • D. Object-Oriented Database

Explanation

Answer: NoSQL Database In a real-time chat application, a NoSQL database is often preferred for storing chat messages due to its flexibility, scalability, and ability to handle unstructured data efficiently.

What is the role of WebSocket in a real-time chat application?

  • A. Ensuring data consistency
  • B. Facilitating asynchronous communication between client and server
  • C. Handling database transactions
  • D. Securing the chat messages

Explanation

Answer: Facilitating asynchronous communication between client and server WebSocket plays a crucial role in real-time chat applications by enabling bidirectional, low-latency communication between the client and server. This allows for instant message updates without the need for continuous polling.

Which technique is commonly used to implement presence functionality in a real-time chat application?

  • A. Polling
  • B. Long Polling
  • C. Short Polling
  • D. Heartbeat mechanism

Explanation

Answer: Heartbeat mechanism The heartbeat mechanism is commonly used to implement presence functionality in a real-time chat application. It involves sending periodic signals (heartbeats) between the client and server to indicate a user's online status.

What are the challenges of scaling a real-time chat application to handle a large number of concurrent users?

  • A. Database bottlenecks
  • B. Network latency
  • C. Lack of user authentication
  • D. Insufficient server hardware

Explanation

Answer: Database bottlenecks Scaling a real-time chat application poses challenges such as database bottlenecks due to frequent reads and writes, impacting performance as the user base grows. Addressing these challenges is crucial for maintaining responsiveness.

How can you ensure message delivery reliability in a real-time chat application?

  • A. Implementing acknowledgments
  • B. Increasing server load
  • C. Reducing network bandwidth
  • D. Disabling message retries

Explanation

Answer: Implementing acknowledgments Ensuring message delivery reliability involves implementing acknowledgments, where the sender receives confirmation that the message was successfully delivered. This approach enhances reliability by minimizing the risk of message loss.

What are some security considerations when designing a real-time chat application?

  • A. End-to-end encryption
  • B. Storing passwords in plaintext
  • C. Using unsecured communication protocols
  • D. Ignoring user access controls

Explanation

Answer: End-to-end encryption Security considerations in a real-time chat application include implementing end-to-end encryption to protect user data. Storing passwords securely and using secure communication protocols are also essential for safeguarding user information.

In a real-time chat application, _________ is used to notify users about the online/offline status of other users.

  • A. WebSockets
  • B. HTTP
  • C. FTP
  • D. SMTP

Explanation

Answer: WebSockets WebSockets are commonly used in real-time chat applications to establish a bidirectional communication channel, allowing instant updates on user status changes.

Implementing _________ helps in reducing latency and ensuring real-time message delivery in a chat application.

  • A. Message Queues
  • B. Caching
  • C. Load Balancing
  • D. Encryption

Explanation

Answer: Message Queues Message Queues, such as RabbitMQ or Kafka, aid in reducing latency by handling message delivery asynchronously, ensuring real-time communication in chat applications.

_________ is an important aspect of database design in a chat application to efficiently query and retrieve chat history.

  • A. Indexing
  • B. Sharding
  • C. Replication
  • D. Normalization

Explanation

Answer: Indexing Indexing is crucial in a chat application's database design as it allows for efficient querying and retrieval of chat history by optimizing search operations on relevant columns.

_________ is a technique used to manage user authentication and authorization in a real-time chat application.

  • A. Token-based authentication
  • B. OAuth
  • C. Two-Factor Authentication
  • D. JWT

Explanation

Answer: Token-based authentication Token-based authentication is a commonly used technique in real-time chat applications to manage user authentication and authorization. It involves the use of tokens, which are securely exchanged between the client and server to verify the user's identity.

_________ is a protocol commonly used for real-time communication between the client and server in a chat application.

  • A. WebSocket
  • B. HTTP
  • C. TCP
  • D. UDP

Explanation

Answer: WebSocket WebSocket is a protocol designed for real-time communication, making it a suitable choice for chat applications. It provides full-duplex communication channels over a single TCP connection, allowing both the client and server to send messages to each other at any time.

Implementing _________ helps in ensuring that messages are delivered to all intended recipients even in the event of failures.

  • A. Message Queues
  • B. WebSockets
  • C. Polling
  • D. Long Polling

Explanation

Answer: Message Queues Implementing message queues is a crucial technique in a chat application to ensure reliable message delivery. It helps decouple components, provides fault tolerance, and ensures that messages are delivered even if some parts of the system fail.

In a scenario where a real-time chat application experiences a sudden surge in users during peak hours, which scaling strategy would be most appropriate to ensure uninterrupted service?

  • A. Horizontal Scaling
  • B. Vertical Scaling
  • C. Diagonal Scaling
  • D. Lateral Scaling

Explanation

Answer: Horizontal Scaling Horizontal scaling, also known as scaling out, involves adding more machines to the existing pool to handle increased load. It is suitable for scenarios where the workload can be distributed across multiple instances to ensure uninterrupted service.

Suppose a real-time chat application is required to support end-to-end encryption for user messages. Which encryption technique would best suit this requirement?

  • A. Public Key Infrastructure (PKI)
  • B. Symmetric Key Encryption
  • C. Asymmetric Key Encryption
  • D. Digital Signature

Explanation

Answer: Asymmetric Key Encryption Asymmetric key encryption, such as RSA, is well-suited for end-to-end encryption in scenarios where different keys are used for encryption and decryption, ensuring secure communication between users.

In a real-time chat application, if a message fails to reach its recipient due to network issues, what mechanism can be employed to ensure eventual delivery?

  • A. Message Queuing
  • B. Pub/Sub Messaging
  • C. Retry Mechanism
  • D. Circuit Breaker

Explanation

Answer: Retry Mechanism A retry mechanism can be employed to ensure eventual delivery of messages in a real-time chat application. It involves attempting to send the message again after a certain interval or until the message is successfully delivered.

Today's exercise: Review & recall

Revisit any questions you hesitated on. Write one-line answers in your own words.

Steps

  1. 1

    First pass

    Read each question and pick an answer without looking at the explanation.

  2. 2

    Second pass

    Expand explanations only for questions you missed or were unsure about.

  3. 3

    Notes

    Jot down 3 terms or patterns you want to remember from this batch.

One rehearsal platform

Certification mocks, daily lessons, project labs, and in-browser drills

Structured for exam day and portfolio proof — timed tests, guided builds, and quick reps on one platform.