Building Microservices: Designing Fine-Grained Systems
Rate it:
Read between December 3 - December 3, 2015
11%
Flag icon
Building a Team
12%
Flag icon
The Bounded Context
12%
Flag icon
the analogy of cells, where “[c]ells can exist because their membranes define what is in and out and determine what can pass.”
13%
Flag icon
having an existing codebase you want to decompose into microservices is much easier than trying to go to microservices from the beginning.
14%
Flag icon
ask first “What does this context do?”, and then “So what data does it need to do that?”
14%
Flag icon
The Technical Boundary It can be useful to look at what can go wrong when services are modeled incorrectly.
14%
Flag icon
Both services spoke in terms of low-level, RPC-style method calls,
15%
Flag icon
SOAP? XML-RPC? REST? Protocol buffers?
15%
Flag icon
Enrolling a new customer may need to kick off additional processes,
16%
Flag icon
Synchronous Versus Asynchronous
17%
Flag icon
remote procedure call (RPC) and REpresentational State Transfer (REST).
17%
Flag icon
Remote Procedure Calls Remote procedure call refers to the technique of making a local call and having it execute on a remote service somewhere.
17%
Flag icon
TCP offers guarantees about delivery, whereas UDP doesn’t but has a much lower overhead.
18%
Flag icon
They can fail fast, they can fail slow, and they can even malform your packets.
18%
Flag icon
A failure could be caused by the remote server returning an error, or by you making a bad call. Can you tell the difference, and if so, can you do anything about it?
18%
Flag icon
REST REpresentational State Transfer (REST) is an architectural style inspired by the Web.
19%
Flag icon
I strongly recommend you take a look at the Richardson Maturity Model, where the different styles of REST are compared.
19%
Flag icon
Use it badly, and it can be as insecure and hard to scale as any other technology out there. Use it right, though, and you get a lot of help.
20%
Flag icon
The Hypertext Application Language (HAL) attempts to fix this by defining some common standards for hyperlinking for JSON
20%
Flag icon
One pattern I saw used effectively by one of our teams was to delay the implementation of proper persistence for the microservice, until the interface had stabilized enough.
21%
Flag icon
For server-to-server communications, if extremely low latency or small message size is important, HTTP communications
21%
Flag icon
REST in Practice (O’Reilly),
21%
Flag icon
Traditionally, message brokers like RabbitMQ try to handle both problems.
22%
Flag icon
you observe the outcome of an operation (or set of operations) and react when something changes.
22%
Flag icon
RealEstate.com.au makes use of a tailored service template to help bootstrap new service creation.
23%
Flag icon
With events, we’re saying this happened, but we need to know what happened. If we’re receiving updates due to a Customer resource changing, for example, it could be valuable to us to know what the Customer looked like when the event occurred.
23%
Flag icon
Defer It for as Long as Possible The best way to reduce the impact of making breaking changes is to avoid making them in the first place.
24%
Flag icon
Semantic versioning is a specification that allows just that. With semantic versioning, each version number is in the form MAJOR.MINOR.PATCH. When the MAJOR number increments, it means that backward incompatible changes have been made. When MINOR increments, new functionality has been added that should be backward compatible. Finally, a change to PATCH states that bug fixes have been made to existing functionality.
26%
Flag icon
when I retrieve a customer record, do I need to pull back all the same data for a mobile shop as I do for a helpdesk application? One solution to this approach is to allow consumers to specify what fields to pull back when they make a request, but this assumes that each service supports this form of interaction.
26%
Flag icon
Backends for Frontends
26%
Flag icon
use of these backends to one specific user interface or application, as we see in Figure 4-10.
31%
Flag icon
Staging a service separation
38%
Flag icon
Chef, Puppet, and Ansible all support multiple different common technology-specific build artifacts too.
« Prev 1 2 Next »