reactive design Flashcards

1
Q

Reactive is

A

A set of Design PrinciplesMessage DrivenResilientElasticResponsive

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 systemsMessage: Asynchronous and Non-blockingNon-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