Software Architecture: The Hard Parts: Modern Trade-Off Analyses for Distributed Architectures
Rate it:
Open Preview
1%
Flag icon
Software developers build outstanding skills in searching online for solutions to a current problem.
1%
Flag icon
For architects, many problems present unique challenges
1%
Flag icon
Don’t try to find the best design in software architecture; instead, strive for the least worst combination of trade-offs.
2%
Flag icon
software architecture is the stuff that’s hard to change later.”
2%
Flag icon
data is the most important asset in a company. Businesses want to extract value from the data that they have
2%
Flag icon
One of the most effective ways of documenting architecture decisions is through Architectural Decision Records
7%
Flag icon
One of the most difficult tasks an architect will face is untangling the various forces and trade-offs at play in distibuted architectures.
7%
Flag icon
“Software architecture” is the stuff you can’t Google answers for.
7%
Flag icon
A skill that modern architects must build is the ability to do trade-off analysis.
7%
Flag icon
the first step in trade-off analysis is untangle the dimensions of the problem, analyzing what parts are coupled to one another and what impact that coupling has on change.
7%
Flag icon
Two parts of a software system are coupled if a change in one might cause a change in the other.
7%
Flag icon
Determining the proper size for microservices seems a pervasive problem—too-small services create transactional and orchestration issues, and too-large services create scale and distribution issues.
7%
Flag icon
An architecture quantum is an independently deployable artifact with high functional cohesion, high static
7%
Flag icon
coupling, and synchronous dynamic coupling. A common example of an architecture quantum is a well-formed microservice within a workflow.
8%
Flag icon
Monolithic architectures always have a quantum of one
8%
Flag icon
Broker event-driven architectures (without a central mediator) are less coupled, but that doesn’t guarantee complete decoupling.
9%
Flag icon
The nature of how services call one another creates difficult trade-off decisions because it represents a multidimensional decision space, influenced by three interlocking forces: Communication Refers to the type of connection synchronicity used: synchronous or asynchronous. Consistency Describes whether the workflow communication requires atomicity or can utilize eventual consistency. Coordination Describes whether the workflow utilizes an orchestrator or whether the services communicate via choreography.
9%
Flag icon
When two services communicate with each other, one of the fundamental questions for an architect is whether that communication should be synchronous or asynchronous.