Reactive systems are an architectural style that allows multiple individual applications to blend into one unit, reacting to their environment, while staying aware of each other. Here is a list of coding interview questions on Reactive Systems to help you get ready for your next data structures interview in 2021.
What is Scalability of the Reactive System?
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.
What Does Asynchrony Mean in the Context of Reactive Systems?
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.
What is Actor Model?
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