10/11: Microservices Flashcards

1
Q

What is a microservice

A

A microservice is a small application that can be
deployed independently, scaled independently,
and tested independently, and that has a single
responsibility - a single reason to change and/or a
single reason to be replaced.

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

what is a saga?

A

transactions are broken down into collections of sub-transactions called sagas
each subtransaction has a subtransaction that undos it
the saga guarantees either all of the transactions complete
or none
A FAILUREMANAGEMENT PATTERN FR DISTRIBUTED DATABASED

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

why are microservs good?

A

can be written in different languages
scales well
can scale based on what you need
loose coupling

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

what are key issues in MSs?

A
  • How to decompose the application into services
    • How to maintain data consistency
    • How to implement queries
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what are the essential traits of MSs

A
isolation
autonomicity
single responsiblity - do one thing and do it well
exclusive state
mobility
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

what is event sourcing?

A

similar to journaling in OS

keep a log of events. allows the log to be replayed in the event of a crash

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

what is xyz partitioning

A

x is more machines
y is diff mahcines do diff tasks
z is diff machines work on diff data

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

what is CQRS

A

Command Query Responsibility Segregation
seperates the read and write model from each other, decouples the writes and the responses to the writes
allows us to scale reads and writes independantly of each other

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

what is Polyglot persistence

A

Polyglot Persistence is a fancy term to mean that when storing data, it is best to use multiple data storage technologies, chosen based upon the way data is being used by individual applications or components of a single application. Different kinds of data are best dealt with different data stores. In short, it means picking the right tool for the right use case.

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

what is continous delivery

A

is a software development discipline where you build software in
such a way that the software can be released to product at any
time
continuously integrating the software, building executables,
• running automated tests on those executables to detect
problems
• pushing the executables into increasingly production-like
environments to ensure the software will work in production

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

what are the issues of mciroservices

A

increased complexity that comes with a distributed system
requires thorough automated testing
high level of automation required

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