Microservices • Martin Fowler • GOTO 2014
Why Stack Overflow recommends it
Stack Overflow users link it as an authoritative source when they need to cite Fowler's rules of thumb on microservice boundaries, per-service databases, and the difference from SOA.
Recommended by 3 people across 3 different months, 2015 to 2021.
What it is
Martin Fowler's 26-minute keynote at GOTO Berlin 2014 introduces the microservice architectural style. He compares it with monoliths, walks through its defining characteristics (componentization via services, business-capability teams, decentralized data, infrastructure automation, design for failure), and discusses whether it is just SOA and how big a service should be.
What people said
Recommends MayTheSchwartzBeWithYou · 2016-06 · Stack Overflow · on “Grails 3 Microservices”
I know it is one year later, but since I wondered the same here is my conclusion. The presentation of Scott Brown misses the point of micro-services. They are not just small pieces of code that provide a RESTful interface, but they are defined as micro, by their footprint and the fact that they can live separate from each other. Try running a Grails instance for each small service. The cost will be huge as each machine requires more than 1GB ram. To answer your question; monolithic frameworks as Grails are great toolkits, making it easy to handle and maintain more complex logic, as well as handle security and other common tasks which with (e.g.) Node you would need to install libraries of du
Recommends jgauffin · 2018-08 · Stack Overflow · on “What design pattern should be used for a workflow like this?”
That aren't microservices. That's pico services and imho they are way to small to motivate all the extra maintenance and administration that a microservice require. In his excellent talk from GOTO Conference 2014 [this video] Martin Fowler recommends that a couple of full time developers is recommended per Microservice. If you don't have at least one that works full time with the service, then it's way to small. To keep it simple you could use a message based architecture instead, where each internal service subscribes on messages from other internal services. For instance when a download is complete you could send a FileDownloaded event from the FileDownloader and to which the FileProcessor have
Recommends Deniz Acay · 2021-05 · Stack Overflow · on “Should I share models across multiple microservices?”
First of all, I would like to state that one of the main ideas behind microservices is separating responsibilities. You can share libraries amongst the services ( please read this [LINK] ). Also you can expose some representational objects (e.g. Protocol Buffer messages if you are using gRPC). But if you are planning to integrate different services with a shared database, this is not in line with a microservice architecture. Because you are using a database as an integration mechanism between different components of your system. Having your services depend on each other is something you have to minimize if you cannot prevent it altogether. Availability of your services suffer and you are int
Cites odino · 2015-06 · Stack Overflow · on “DB consistency with microservices”
What is the best way to achieve DB consistency in microservice-based systems? At the GOTO in Berlin [this video] , Martin Fowler was talking about microservices and one "rule" he mentioned was to keep "per-service" databases, which means that services cannot directly connect to a DB "owned" by another service. This is super-nice and elegant but in practice it becomes a bit tricky. Suppose that you have a few services: a frontend an order-management service a loyalty-program service Now, a customer make a purchase on your frontend, which will call the order management service, which will save everything in the DB -- no problem. At this point, there will also be a call to the loyalty-program servic
Cites zoltanflavius · 2018-05 · Stack Overflow · on “SOA versus NuGet Packages”
On the one hand Nuget are just libraries and should be standalone (no connection to the database, no other services involved). On the other hand microservices and SOA are services (can be scaled up/out, can be monitored, ca be cached, etc). The difference between microservices and SOA depends on what you understand by SOA(see [this video] ).