All interview topics
System Design & Architecture

Reactive Systems Interview Questions and Answers

Practice Reactive Systems interview questions and answers organized by difficulty, with revealable explanations and related topics.

11 questionsEntry → Expert

Junior questions

1 questions
  1. Question 1
    Junior

    What is Scalability of the Reactive System?

    • Reactive Systems
    Reveal answer

    Scalability is the ability of a system to make use of more computing resources in order to increase its performance is measured by the ratio of throughput gain to resource increase. A perfectly scalable system is characterized by both numbers being proportional: a twofold allocation of resources will double the throughput. Scalability is typically limited by the introduction of bottlenecks or synchronization points within the system, leading to constrained scalability, see Amdahl’s Law and Gunther’s Universal Scalability Model.

Mid questions

5 questions
  1. Question 2
    Mid

    Name Some Characteristic of Reactive Systems

    • Reactive Systems
    Reveal answer

    Responsive: the system should respond in a timely manner Resilient: in case the system faces any failure, it should stay responsive Elastic: reactive systems can react to changes and stay responsive under varying workload Message-driven: reactive systems need to establish a boundary between components by relying on asynchronous message passing

  2. Question 3
    Mid

    What are some benefits of Reactive Systems?

    • Reactive Systems
    Reveal answer

    Systems built as Reactive Systems are more flexible, loosely-coupled and scalable. This makes them easier to develop and amenable to change. They are significantly more tolerant of failure and when failure does occur they meet it with elegance rather than disaster. Reactive Systems are highly responsive, giving users effective interactive feedback.

  3. Question 4
    Mid

    What Does It Mean to be Responsive for a Reactive System?

    • Reactive Systems
    Reveal answer

    It means the system responds in a timely manner if at all possible. Responsiveness is the cornerstone of usability and utility, but more than that, responsiveness means that problems may be detected quickly and dealt with effectively. Responsive systems focus on providing rapid and consistent response times, establishing reliable upper bounds so they deliver a consistent quality of service. This consistent behaviour in turn simplifies error handling, builds end user confidence, and encourages further interaction.

  4. Question 5
    Mid

    What Does Asynchrony Mean in the Context of Reactive Systems?

    • Reactive Systems
    Reveal answer

    The Oxford Dictionary defines asynchronous as “not existing or occurring at the same time”. In the context of Reactive Sysytems, it means that the processing of a request occurs at an arbitrary point in time, sometime after it has been transmitted from client to service. The client cannot directly observe, or synchronize with, the execution that occurs within the service. This is the antonym of synchronous processing which implies that the client only resumes its own execution once the service has processed the request.

  5. Question 6
    Mid

    What is Actor Model?

    • Reactive Systems
    Reveal answer

    All Actor model says that your concurrency primitives are actors, which can: receive a message and decide what to do next depending on the content of the message, including: send messages to any actors they know about create new actors and provides certain guarantees, e.g.: any actor will only handle a single message at a time messages sent by actor X to actor Y will arrive in the order thay were sent

Senior questions

2 questions
  1. Question 7
    Senior

    What Does It Mean to be Resilient for a Reactive System?

    • Reactive Systems
    Reveal answer
    **It means the system stays responsive in the face of failure. **This applies not only to highly-available, mission-
    

    critical systems — any system that is not resilient will be unresponsive after a failure. Resilience is achieved by replication, containment, isolation and delegation. Failures are contained within each component, isolating components from each other and thereby ensuring that parts of the system can fail and recover without compromising the system as a whole. Recovery of each component is delegated to another (external) component and high-availability is ensured by replication where necessary. The client of a component is not burdened with handling its failures.

  2. Question 8
    Senior

    What Does It Mean to be Elastic for a Reactive System?

    • Reactive Systems
    Reveal answer

    It means the system stays responsive under varying workload. Reactive Systems can react to changes in the input rate by increasing or decreasing the resources allocated to service these inputs. This implies designs

    that have no contention points or central bottlenecks, resulting in the ability to shard or replicate components and distribute inputs among them. Reactive Systems support predictive, as well as Reactive, scaling algorithms by providing relevant live performance measures. They achieve elasticity in a cost-effective way on commodity hardware and software platforms.

Expert questions

3 questions
  1. Question 9
    Expert

    What Does It Mean to be Message Driven for a Reactive System?

    • Reactive Systems
    Reveal answer

    Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation and location transparency. This boundary also provides the means to delegate failures as messages. Employing explicit message-passing enables load management, elasticity, and flow control by shaping and monitoring the message queues in the system and applying back-pressure when necessary. Location transparent messaging as a means of communication makes it possible for the management of failure to work with the same constructs and semantics across a cluster or within a single host. Non-blocking communication allows recipients to only consume resources while active, leading to less system overhead. FORM MEANS VALUE Responsive Maintainable Extensible Resilient Message Driven Elastic

  2. Question 10
    Expert

    What does Amdahl's Law mean?

    • Software Architecture Reactive Systems
    Reveal answer

    Amdahl’s law is a formula used to find the maximum improvement possible by improving a particular part of a system. In parallel computing, Amdahl's law is mainly used to predict the theoretical maximum speedup for program processing using multiple processors. It is named after Gene Amdahl, a computer architect from IBM and the Amdahl Corporation.

  3. Question 11
    Expert

    Explain Message-Driven vs Event-Driven Approaches

    • Reactive Systems
    Reveal answer

    A message is an item of data that is sent to a specific destination. An event is a signal emitted by a component upon reaching a given state. In a message-driven system addressable recipients await the arrival of messages and react to them, otherwise lying dormant. In an event-driven system notification listeners are attached to the sources of events such that they are invoked when the event is emitted. This means that an event-driven system focuses on addressable

    event sources while a message-driven system concentrates on addressable recipients. A message can contain an encoded event as its payload.