Introduction to Reactive Systems Flashcards

1
Q

Reactive is

A

A set of Design Principles

Message Driven
Resilient
Elastic
Responsive

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What’s the primary goal of Reactive Architecture?

A
  • Software that maintains a Consistent Level of Quality and Responsiveness (No downtime and good response times).
  • Failures with little to no effect on the user.
  • Software that can be distributed across many machines.
  • Software that scale consuming only the necessary resources.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

When people talk about Reactive, they generally mean …

A
  • Reactive System (architecture and design)
  • Reactive Programming (declarative event-based)
  • Functional Reactive Programming (FRP)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Message Driven is the foundation for …

A

Elastic, Resilient and Responsive systems

Message: Asynchronous and Non-blocking

Non-Blocking: don’t wait for a response, to avoid consuming resources.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Message Driven provides …

A

Loose Coupling.
Isolation.
Location Transparency.

An Asynchronous Boundary.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Elastic

A

A Reactive System remains Responsive, despite changes in System Load.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Resilient

A

A Reactive System remains Responsive, even when failures occur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

The Main Keys for a Resilient System ..

A

Containment (a consequence of Isolation)
failures are isolated into a single component (they don’t propagate and bring down the whole system).

Isolation: Services can function on their own, they don’t have external dependencies.

Delegation: Recovery is managed by an external component because the failing component is not reliable, if the system goes down the system can’t restart itself because it’s down.

Replication: Multiple copies of a service.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Responsive is …

A

Cornerstone of Usability.

it is the consequence of a Resilient, Elastic and Message Driven System

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

It is not a Reactive System if …

A
  • if it is deploy in single node.

- if there is a local cache and there is not way to sync with multiple nodes, hard to scale up, consistency problem.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Reactive Programming is …

A

Is a Subset Of Asynchronous Programming and a Paradigm where the availability of new Information drives the logic forward rather than having control flow driven by a Thread-of-execution

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Reactive Programming Techniques

A

Takes a problem and breaks it up into small discrete steps, those are executed in an Asynchronous Non-blocking fashion (some sort of callback mechanism).

Futures, Reactive Stream, RxJava, RxScala.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Actor Model Concepts:

A
  • All computations occur inside of an actor, the Principle Abstraction is Encapsulating all computation inside of an actor.
  • Actors communicate only through Asynchronous Messages Location transparency
  • Each actor is addressable, it has a unique address
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Location transparency:

A
  • Local calls look like remote calls, assumes you are always making remote call and you have to assume remote failure scenarios (Eg. network failures)
  • You can’t assume that the message is delivered.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Transparent Remoting:

A

Remote calls look like local calls, hides the fact that you are making remote calls and also potential failure scenarios (Eg. network failues)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly