You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add git hook to check Markdown format of changed files (#275)
* Test commit to check git hook
* Add git hook for the Markdown format checking
* Improve git hook to detect changed by not yet commited files
* Fix Markdown formatting
Copy file name to clipboardExpand all lines: patterns/architect-for-flow.md
+6-4Lines changed: 6 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,12 +15,14 @@ One key consideration is how best to break the system down into independent serv
15
15
## Benefits
16
16
17
17
In high level terms, systems which are designed to maximise rapid, reliable delivery and operations:
18
+
18
19
* Are cost efficient: teams don't waste their time fighting the tools or working with difficult architectures
19
20
* Improve business agility: these systems allow teams to respond more quickly to changes
20
21
* Improve reliability: these systems are easier to understand, which leads to fewer failures and shorter recovery times
21
22
* Improve team happiness: engineers are happy when the tools they work with let them get on with what they do best
22
23
23
24
In many cases, building a system as a set of independently running services/components has benefits:
25
+
24
26
* Multiple components enable parallel development work by multiple teams
25
27
* Teams can work at their own cadence
26
28
* Changes with each component are easier to reason about and test
@@ -35,10 +37,10 @@ In many cases, building a system as a set of independently running services/comp
35
37
36
38
* This pattern must not compromise quality: automation (including of quality control) is essential for safe implementation of this pattern
37
39
* Architectures with multiple moving parts are more complicated. While splitting a system into multiple components is often a good idea, "too many" components can cause more harm than good. There is usually a sweet spot for how many components to break a system down into — and for small or simple systems a monolith might be better. In distributed systems:
38
-
* There are more failure modes to test, since calls which go over the network can fail in more ways than simple method invocations
39
-
* Versioning becomes a more complicated concern, and additional effort is required to ensure component APIs are compatible as each changes independently
40
-
* Clean domain boundaries are essential for safe implementation of this pattern
41
-
* Comprehensive monitoring and alerting is essential for safe implementation of this pattern
40
+
* There are more failure modes to test, since calls which go over the network can fail in more ways than simple method invocations
41
+
* Versioning becomes a more complicated concern, and additional effort is required to ensure component APIs are compatible as each changes independently
42
+
* Clean domain boundaries are essential for safe implementation of this pattern
43
+
* Comprehensive monitoring and alerting is essential for safe implementation of this pattern
42
44
* Components should be built because working in that way gives benefits, not purely because the components might be reused later: if they are later reused, that's even better
0 commit comments