Questions tagged [microservices]

An architectural approach to developing a single application as a suite of small individually deployable services.

The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare mininum of centralized management of these services, which may be written in different programming languages and use different data storage technologies.

Microservices Definition by Lewis/Fowler

Properties:

  • The services are easy to replace.
  • Services are organized around capabilities, e.g. user interface front-end, recommendation, logistics, billing, etc.
  • Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best.
  • Architectures are symmetrical rather than hierarchical (producer/consumer).

Philosophy:

  • The services are small - fine-grained to perform a single function.
  • The organization culture should embrace automation of deployment and
    testing. This eases the burden on management and operations.
  • The culture and design principles should embrace failure and faults, similar to anti-fragile systems.
  • The services are elastic, resilient, composable, minimal, and complete.

Books:

Besides there are thousands of books that speak about microservices focused on some language like Python or Java or some platforms like Azure or AWS easily to find.

Articles

The following is an great article series from the NGINX Blog.

Sites

9062 questions
269
votes
9 answers

When and How to use GraphQL with microservice architecture

I'm trying to understand where GraphQL is most suitable to use within a microservice architecture. There is some debate about having only 1 GraphQL schema that works as API Gateway proxying the request to the targeted microservices and coercing…
Fabrizio Fenoglio
  • 5,767
  • 14
  • 38
  • 75
246
votes
8 answers

Orchestrating microservices

What is the standard pattern of orchestrating microservices? If a microservice only knows about its own domain, but there is a flow of data that requires that multiple services interact in some manner, what's the way to go about it? Let's say we…
Roger Johansson
  • 22,764
  • 18
  • 97
  • 193
245
votes
11 answers

Transactions across REST microservices?

Let's say we have a User, Wallet REST microservices and an API gateway that glues things together. When Bob registers on our website, our API gateway needs to create a user through the User microservice and a wallet through the Wallet microservice.…
Olivier Lalonde
  • 19,423
  • 28
  • 76
  • 91
175
votes
5 answers

Microservice Authentication strategy

I'm having a hard time choosing a decent/secure authentication strategy for a microservice architecture. The only SO post I found on the topic is this one: Single Sign-On in Microservice Architecture My idea here is to have in each service (eg.…
Augustin Riedinger
  • 20,909
  • 29
  • 133
  • 206
171
votes
7 answers

API gateway vs. reverse proxy

In order to deal with the microservice architecture, it's often used alongside a Reverse Proxy (such as nginx or apache httpd) and for cross cutting concerns implementation API gateway pattern is used. Sometimes Reverse proxy does the work of API…
user1459144
  • 4,439
  • 5
  • 28
  • 35
148
votes
6 answers

Microservices: how to handle foreign key relationships

Microservices architecture suggest that each service should handle it's own data. Hence any service (Service A) dependent on data owned by other service (service B) should access such data not by making direct DB calls but through the api provided…
user8205906
142
votes
5 answers

Microservices and database joins

For people that are splitting up monolithic applications into microservices how are you handling the connundrum of breaking apart the database. Typical applications that I've worked on do a lot of database integration for performance and simplicity…
Martin Bayly
  • 2,413
  • 3
  • 19
  • 19
119
votes
1 answer

Where does Elixir/erlang fit into the microservices approach?

Lately I've been doing some experiments with docker compose in order to deploy multiple collaborating microservices. I can see the many benefits that microservices provide, and now that there is a good toolset for managing them, I think that it's…
Papipo
  • 2,799
  • 2
  • 23
  • 28
95
votes
3 answers

Microservices vs Monolithic Architecture

What are advantages and disadvantages of microservices and monolithic architecture? When to chose microservice architecture or monolithic architecture?
user902383
  • 8,420
  • 8
  • 43
  • 63
88
votes
4 answers

How does data denormalization work with the Microservice Pattern?

I just read an article on Microservices and PaaS Architecture. In that article, about a third of the way down, the author states (under Denormalize like Crazy): Refactor database schemas, and de-normalize everything, to allow complete separation…
smeeb
  • 27,777
  • 57
  • 250
  • 447
82
votes
7 answers

How to handle HTTP requests in a Microservice / Event Driven Architecture?

Background: I am building an application and the proposed architecture is Event/Message Driven on a microservice architecture. The monolithic way of doing thing is that I've a User/HTTP request and that actions some commands that have a direct…
Jonathan Thurft
  • 4,087
  • 7
  • 47
  • 78
82
votes
8 answers

How to bring a gRPC defined API to the web browser

We want to build a Javascript/HTML gui for our gRPC-microservices. Since gRPC is not supported on the browser side, we thought of using web-sockets to connect to a node.js server, which calls the target service via grpc. We struggle to find an…
Oliver
  • 1,007
  • 1
  • 9
  • 10
80
votes
3 answers

Kafka Msg VS REST Calls

Nowadays in microservice world, i’m seeing alot of design in my workplace that uses kafka messaging when you can achieve similar results using rest api calls between microservices. Technically you can stop using rest api calls altogether and instead…
user1955934
  • 3,185
  • 5
  • 42
  • 68
70
votes
8 answers

Angular and Micro-Frontends

I am doing some research on how to split a huge single-page-monolith into a micro-frontend architecture. The idea: the page consists of several components which would be running autonomously each component is managed by one dev-team each team can…
H W
  • 2,556
  • 3
  • 21
  • 45
68
votes
3 answers

2PC vs Sagas (distributed transactions)

I'm developing my insight about distributed systems, and how to maintain data consistency across such systems, where business transactions covers multiple services, bounded contexts and network boundaries. Here are two approaches which I know are…
Tuomas Toivonen
  • 21,690
  • 47
  • 129
  • 225
1
2 3
99 100