Index
A
- acceleration of rate of change in software development ecosystem, Shifting “Fashion” in Architecture
- accessibility, Cross-Cutting Architecture Characteristics
- accidental architecture anti-pattern, Layered Architecture Style
- accidental complexity, The 4 C’s of Architecture
- accountability, Cross-Cutting Architecture Characteristics
- achievability, Cross-Cutting Architecture Characteristics
- ACID transactions, Distributed transactions
- actions provided by presention tools, Manipulating Time
- actor/actions approach to designing components, Actor/Actions approach
- actual productivity (of development teams), Team Warning Signs
- adaptability, Cross-Cutting Architecture Characteristics
- administrators (network), Fallacy #6: There Is Only One Administrator
- ADR-tools, Architecture Decision Records
- ADRs (architecture decision records), Architecture Decision Records-Example
- as documentation, ADRs as Documentation
- auction system example, Example
- basic structure of, Basic Structure
- compliance section, Compliance
- context section, Context
- decision section, Decision
- draft ADR, request for comments on, Status
- notes section, Notes
- status, Status
- storing, Storing ADRs
- title, Title
- using for standards, Using ADRs for Standards
- Agile development
- agility
- Ambulance pattern, Elasticity
- analyzability, Cross-Cutting Architecture Characteristics
- animations provided by presentation tools, Manipulating Time
- anti-patterns
- Big Ball of Mud, Cyclic dependencies, Big Ball of Mud
- Bullet-Riddled Corpse in corporate presentations, Incremental Builds
- Cookie-Cutter, Manipulating Time
- Covering Your Assets, Covering Your Assets Anti-Pattern
- Email-Driven Architecture, Email-Driven Architecture Anti-Pattern
- Entity Trap, Entity trap
- Frozen Caveman, Technical Breadth
- Generic Architecture, Extracting Architecture Characteristics from Domain Concerns
- Groundhog Day, Groundhog Day Anti-Pattern
- Irrational Artifact Attachment, Tools
- Ivory Tower Architect, Implicit Characteristics, Negotiating with Developers
- anvils dropping effects, Manipulating Time
- Apache Camel, Mediator Topology
- Apache Ignite, Processing Unit
- Apache Kafka, Example
- Apache ODE, Mediator Topology
- Apache Zookeeper, Registry
- API layer
- application logic in processing units, Processing Unit
- application servers
- application services, Application Services
- ArchiMate, ArchiMate
- architects (see software architects)
- architectural extensibility, Analyzing Trade-Offs
- architectural fitness functions, Engineering Practices
- architectural thinking, Architectural Thinking-Balancing Architecture and Hands-On Coding
- architecturally significant, Architecturally Significant
- architecture by implication anti-pattern, Layered Architecture Style
- architecture characteristics, Architecture Characteristics Defined-Trade-Offs and Least Worst Architecture
- about, Architecture Characteristics Defined-Architecture Characteristics Defined
- analyzing for components, Analyze Architecture Characteristics
- cross-cutting, Cross-Cutting Architecture Characteristics
- defined, self-assessment questions, Chapter 4: Architecture Characteristics Defined
- definitions of terms from the ISO, Cross-Cutting Architecture Characteristics
- in distributed architecture Going, Going, Gone case study, Distributed Case Study: Going, Going, Gone
- fitness functions testing
- governance of, Governance and Fitness Functions
- identifying, Identifying Architectural Characteristics-Implicit Characteristics
- incorporating into Going, Going, Gone component design, Case Study: Going, Going, Gone: Discovering Components
- measuring, Measuring and Governing Architecture Characteristics-Process Measures
- measuring and governing, self-assessment questions, Chapter 6: Measuring and Governing Architecture Characteristics
- operational, Operational Architecture Characteristics
- partial listing of, Architectural Characteristics (Partially) Listed
- ratings in event-driven architecture, Architecture Characteristics Ratings-Architecture Characteristics Ratings
- ratings in layered architecture, Architecture Characteristics Ratings
- ratings in microkernel architecture, Architecture Characteristics Ratings
- ratings in microservices architecture, Architecture Characteristics Ratings-Architecture Characteristics Ratings
- ratings in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- ratings in pipeline architecture, Architecture Characteristics Ratings
- ratings in service-based architecture, Architecture Characteristics Ratings
- ratings in space-based architecture, Architecture Characteristics Ratings
- scope of, Scope of Architecture Characteristics-Case Study: Going, Going, Gone
- structural, Structural Architecture Characteristics
- in synchronous vs. asynchronous communications between services, Decision Criteria
- trade-offs and least worst architecture, Trade-Offs and Least Worst Architecture
- architecture decision records (see ADRs)
- architecture decisions, Defining Software Architecture, Architecture Decisions-Example
- architecture fitness function, Fitness Functions
- architecture katas
- architecture partitioning, Architecture Partitioning
- architecture quantum, Scope of Architecture Characteristics
- architectural quanta and granularity, Architectural Quanta and Granularity-Case Study: Going, Going, Gone
- architectural quanta in microservices, Architecture Characteristics Ratings
- architecture quanta in event-driven architecture, Architecture Characteristics Ratings
- architecture quanta in space-based architecture, Architecture Characteristics Ratings
- choosing between monolithic and distributed architectures in Going, Going, Gone component design, Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures-Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
- in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- quanta boundaries for distributed architecture Going, Going, Gone case study, Distributed Case Study: Going, Going, Gone
- separate quanta in service-based architecture, Architecture Characteristics Ratings
- architecture risk, analyzing, Analyzing Architecture Risk-Security
- Architecture Sinkhole anti-pattern, Other Considerations
- architecture sinkhole anti-pattern
- architecture styles, Foundations-Contract maintenance and versioning
- choosing the appropriate style, Choosing the Appropriate Architecture Style-Distributed Case Study: Going, Going, Gone
- decision criteria, Decision Criteria-Decision Criteria
- distributed architecture in Going, Going, Gone case study, Distributed Case Study: Going, Going, Gone-Distributed Case Study: Going, Going, Gone
- monolithic architectures in Silicon Sandwiches case study, Monolith Case Study: Silicon Sandwiches-Microkernel
- self-assessment questions, Chapter 18: Choosing the Appropriate Architecture Style
- shifting fashion in architecture, Shifting “Fashion” in Architecture-Shifting “Fashion” in Architecture
- defined, Foundations
- fundamental patterns, Fundamental Patterns-Three-tier
- monolithic versus distributed architectures, Monolithic Versus Distributed Architectures-Contract maintenance and versioning
- self-assessment questions, Chapter 9: Architecture Styles
- architecture vitality, Continually Analyze the Architecture
- archivability, Cross-Cutting Architecture Characteristics
- ArchUnit (Java), Balancing Architecture and Hands-On Coding, Distance from the main sequence fitness function
- argumentativeness or getting personal, avoiding, Negotiating with Other Architects
- armchair architects, Armchair Architect
- arrows indicating direction of risk, Risk Assessments
- The Art of War (Sun Tzu), Negotiating with Business Stakeholders
- asynchronous communication, Communication, Decision Criteria
- asynchronous connascence, Coupling and Connascence, Architectural Quanta and Granularity
- auditability
- authentication/authorization, Cross-Cutting Architecture Characteristics
- authenticity, Cross-Cutting Architecture Characteristics
- auto acknowledge mode, Preventing Data Loss
- automation
- availability, Architecture Characteristics Defined
- basic availability in BASE transactions, Distributed transactions
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- implicit architecture characteristic, Implicit Characteristics
- in Going, Going, Gone: discovering commponents case study, Case Study: Going, Going, Gone: Discovering Components
- in nurse diagnostics system risk storming example, Availability
- Italy-ility and, Cross-Cutting Architecture Characteristics
- in layered architecture, Architecture Characteristics Ratings
- negotiating with business stakeholders about, Negotiating with Business Stakeholders
- nines of, Negotiating with Business Stakeholders
- performance and, Extracting Architecture Characteristics from Domain Concerns
- in pipeline architecture, Architecture Characteristics Ratings
- rating in service-based architecture, Architecture Characteristics Ratings
- reliability versus, Cross-Cutting Architecture Characteristics
B
- Backends for Frontends (BFF) pattern, Microkernel
- bandwidth is infinite fallacy, Fallacy #3: Bandwidth Is Infinite
- BASE transactions, Distributed transactions
- basic availability, soft state, eventual consistency (see BASE transactions)
- Big Ball of Mud anti-pattern, Cyclic dependencies, Big Ball of Mud
- bottleneck trap, Balancing Architecture and Hands-On Coding
- bounded context, Architectural Quanta and Granularity, Architectural Quanta and Granularity
- broadcast capabilities in event-driven architecture, Broadcast Capabilities
- broker topology (event-driven architecture), Topology-Mediator Topology
- Brooks' law, Team Warning Signs
- Brooks, Fred, Extracting Architecture Characteristics from Requirements, Team Warning Signs, Using Social Media
- Brown, Simon, Architecture Partitioning, C4
- bug fixes, working on, Balancing Architecture and Hands-On Coding
- build in animations, Manipulating Time
- build out animations, Manipulating Time
- Building Evolutionary Architectures (Ford et al.), Engineering Practices, Governing Architecture Characteristics, Scope of Architecture Characteristics
- Bullet-Riddled Corpse anti-pattern, Incremental Builds
- business and technical justifications for architecture decisions, Groundhog Day Anti-Pattern, Providing Guidance
- business delegate pattern, Layers of Isolation
- business domains
- business drivers, understanding, Understanding Business Drivers
- business layer
- Business Process Execution Language (BPEL), Mediator Topology
- business process management (BPM) engines, Mediator Topology
- business rules layer, Architecture Partitioning
- business stakeholders, negotiating with, Negotiating with Business Stakeholders
C
- C's of architecture, The 4 C’s of Architecture
- C4 diagramming standard, C4
- caching
- capabilities, new, and shifting fashion in architecture, Shifting “Fashion” in Architecture
- capacity, Cross-Cutting Architecture Characteristics
- career path, developing, Developing a Career Path-Parting Words of Advice
- chaos engineering, Distance from the main sequence fitness function
- Chaos Gorilla, Distance from the main sequence fitness function
- Chaos Monkey, Distance from the main sequence fitness function
- The Checklist Manifesto (Gawande), Distance from the main sequence fitness function, Leveraging Checklists
- checklists, leveraging, Leveraging Checklists-Software Release Checklist
- choreography
- circuit breakers, Fallacy #1: The Network Is Reliable
- clarity, The 4 C’s of Architecture
- classes, representation in C4 diagrams, C4
- classpath (Java), Definition
- client acknowledge mode, Preventing Data Loss
- client/server architectures, Client/Server
- closed versus open layers, Layers of Isolation
- cloud, space-based architecture implementations on, Cloud Versus On-Premises Implementations
- code reviews by architects, Balancing Architecture and Hands-On Coding
- coding, balancing with architecture, Balancing Architecture and Hands-On Coding
- coexistence, Cross-Cutting Architecture Characteristics
- cohesion, Architectural Quanta and Granularity
- collaboration, The 4 C’s of Architecture
- color in diagrams, Color
- Common Object Request Broker Architecture (CORBA), Three-tier
- communication, The 4 C’s of Architecture
- communication between services, Decision Criteria
- communication connascence, Architectural Quanta and Granularity
- compatibility
- compensating transaction framework, Transactions and Sagas
- competing consumers, Architecture Characteristics Ratings
- competitive advantage, translation to architecture characteristics, Extracting Architecture Characteristics from Domain Concerns
- complexity in architecture, The 4 C’s of Architecture
- component-based thinking, Component-Based Thinking-Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
- choosing between monolithic and distributed architectures in Going, Going, Gone component design, Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures-Architecture Quantum Redux: Choosing Between Monolithic Versus Distributed Architectures
- component design, Component Design-Workflow approach
- component identification flow, Component Identification Flow-Restructure Components
- component scope, Component Scope-Component Scope
- developers' role, Developer Role
- granularity of components, Component Granularity
- self-assessment questions, Chapter 8: Component-Based Thinking
- software architect's role, Architect Role-Technical partitioning
- components
- concert ticketing system example (space-based architecture), Concert Ticketing System
- conciseness, The 4 C’s of Architecture
- confidentiality, Cross-Cutting Architecture Characteristics
- configurability, Structural Architecture Characteristics
- Conformity Monkey, Distance from the main sequence fitness function
- connascence
- connected components, Structural Measures
- consistency, eventual, Distributed transactions
- constraints, communication by architect to development team, Team Boundaries
- construction techniques, architecurally significant decisions impacting, Architecturally Significant
- Consul, Registry
- consumer filters, Filters
- containers in C4 diagramming, C4
- context
- continuity, Operational Architecture Characteristics
- continuous delivery, Engineering Practices
- contracts
- control freak architects, Control Freak
- Conway's law, Architecture Partitioning, Layered Architecture Style
- Cookie-Cutter anti-pattern, Manipulating Time
- core system in microkernel architecture, Core System-Plug-In Components
- correlation ID, Request-Reply
- cost
- coupling
- Covering Your Assets anti-pattern, Covering Your Assets Anti-Pattern
- Crap4J tool, Structural Measures
- critical or important to success (architecture characteristics), Implicit Characteristics
- cross-cutting architecture characteristics, Cross-Cutting Architecture Characteristics
- cube or door transitions, Manipulating Time
- customizability, architecture characteristics and, Explicit Characteristics
- cyclic dependencies between components, Cyclic dependencies-Cyclic dependencies
- cyclomatic complexity
D
- data
- data abstraction layer, Data Readers
- data access layer, Data Readers
- data collisions, Data Collisions-Data Collisions
- data grid, Data grid
- data isolation in microservices, Data Isolation
- data meshes, Be Pragmatic, Yet Visionary
- “Data Monolith to Data Mesh” article (Fowler), Be Pragmatic, Yet Visionary
- data pumps, General Topology, Data Pumps
- data readers, General Topology, Data Readers
- data writers, General Topology, Data Writers
- database entities, user interface frontend built on, Entity trap
- Database Output transformer filter, Example
- database server, desktop and, Desktop + database server
- databases
- ACID transactions in services of service-based architecture, Service Design and Granularity
- component-relational mapping of framework to, Entity trap
- data pump sending data to in space-based architecture, Data Pumps
- licensing of database servers, problems with, History and Philosophy
- in microkernel architecture core system, Core System
- in microkernel architecture plug-ins, Plug-In Components
- in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- partitioning in service-based architecture, Database Partitioning-Database Partitioning
- removing as synchronous constraint in space-based architecture, General Topology
- scaling database server, problems with, Space-Based Architecture Style
- in service-based architecture, Topology
- transactions in service-based architecture, When to Use This Architecture Style
- variants in service-based architecture, Topology Variants
- DDD (see domain-driven design)
- demonstration defeats discussion, Negotiating with Other Architects
- dependencies
- deployability
- deployment
- design
- design principles in software architecture, Defining Software Architecture
- developer code completion checklist, Developer Code Completion Checklist
- developer flow, Integrating with the Development Team
- developers
- development process, separation from software architecture, Engineering Practices, Architect Role
- development teams, making effective, Making Teams Effective-Summary
- DevOps, Introduction
- diagramming and presenting architecture, Diagramming and Presenting Architecture-Invisibility
- diffusion of responsibility, Team Warning Signs
- direction of risk, Risk Assessments
- directory structure for storing ADRs, Storing ADRs
- dissolve transitions and animations, Manipulating Time
- distance from the main sequence metric, Distance from the main sequence fitness function-Distance from the main sequence fitness function
- distributed architectures
- domain partitioning and, Domain partitioning
- in Going, Going, Gone case study, Distributed Case Study: Going, Going, Gone-Distributed Case Study: Going, Going, Gone
- microkernel architecture with remote access plug-ins, Plug-In Components
- microservices, Distributed
- monolithic architectures versus, Monolithic Versus Distributed Architectures-Contract maintenance and versioning, Decision Criteria
- orchestration and choreography of services in, When to Use This Architecture Style
- in service-based architecture style, Architecture Characteristics Ratings
- stamp coupling in, Fallacy #3: Bandwidth Is Infinite
- three-tier architecture and network-level protocols, Three-tier
- Distributed Component Object Model (DCOM), Three-tier
- distributed systems, Unitary Architecture
- distributed transactions, Distributed transactions
- distributed vs. replicated caching in space-based architecture, Replicated Versus Distributed Caching-Replicated Versus Distributed Caching
- divide and conquer rule, Negotiating with Business Stakeholders
- do and undo operations in transactions, Transactions and Sagas
- documentation, ADRs as, ADRs as Documentation
- domain partitioning (components)
- domain-driven design (DDD), Architectural Quanta and Granularity
- domain/architecture isomorphism, Choreography and Orchestration
- domains
- developers defining, History
- domain areas of applications, risk assessment on, Risk Assessments
- domain changes and architecture styles, Shifting “Fashion” in Architecture
- domain concerns, translating to architecture characteristics, Extracting Architecture Characteristics from Domain Concerns-Extracting Architecture Characteristics from Domain Concerns
- domain services in service-based architecture, Topology, Service Design and Granularity
- domain-based data readers, Data Readers
- domain-based data writers, Data Writers
- domain-centered architecture in microservices, Architecture Characteristics Ratings
- inspiration for microservices service boundaries, Granularity
- in technical and domain-partitioned architectures, Architecture Partitioning
- door or cube transitions, Manipulating Time
- driving characteristics, focus on, Extracting Architecture Characteristics from Domain Concerns
- duplication, favoring over reuse, History
- Duration Calculator transformer filter, Example
- Duration filter, Example
- dynamic connascence, Coupling and Connascence
- DZone Refcardz, The 20-Minute Rule
E
- Eclipse IDE, Core System, Examples and Use Cases
- effective architects, Effective Architect
- effective teams (see development teams, making effective)
- effects offered by presentation tools, Manipulating Time
- elastic scale, Intersection of Architecture and…
- elasticity, Explicit Characteristics, Case Study: Going, Going, Gone
- being pragmatic, yet visionary about, Be Pragmatic, Yet Visionary
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- low rating in layered architecture, Architecture Characteristics Ratings
- low rating in pipeline architecture, Architecture Characteristics Ratings
- rating in microservices architecture, Architecture Characteristics Ratings
- rating in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- rating in service-based architecture, Architecture Characteristics Ratings
- rating in space-based architecture, Architecture Characteristics Ratings
- risks in nurse diagnostics system example, Elasticity
- electronic devices recycling example (service-based architecture), Example Architecture-Example Architecture
- Email-Driven Architecture anti-pattern, Email-Driven Architecture Anti-Pattern
- engineering practices, software architecture and, Engineering Practices
- Enterprise 2.0 (McAfee), Using Social Media
- entity objects, shared library in service-based architecture, Database Partitioning
- entity trap, Entity trap, Data Isolation
- error handling in event-driven architecture, Error Handling-Error Handling
- errors (user), protection against, Cross-Cutting Architecture Characteristics
- essential complexity, The 4 C’s of Architecture
- Evans, Eric, Architectural Quanta and Granularity
- event broker, Broker Topology
- event mediators, Mediator Topology
- event processor, Broker Topology, Mediator Topology
- event queue, Mediator Topology
- event storming in component discovery, Event storming
- event-driven architecture, Event-Driven Architecture Style-Architecture Characteristics Ratings
- events
- eventual consistency, Distributed transactions
- eviction policy in front cache, Near-Cache Considerations
- evolutionary architectures, Fitness Functions
- expectations of an architect, Expectations of an Architect-Understand and Navigate Politics
- explicit versus implicit architecture characteristics, Architecture Characteristics Defined
- extensibility, Structural Architecture Characteristics
- extreme programming (XP), Engineering Practices, Governing Architecture Characteristics
F
- fallacies of distributed computing, Monolithic Versus Distributed Architectures-Fallacy #8: The Network Is Homogeneous
- fast-lane reader pattern, Layers of Isolation
- fault tolerance
- feasibility, Explicit Characteristics
- federated event broker components, Broker Topology
- filters
- in pipeline architecture, Topology
- in pipeline architecture example, Example
- First Law of Software Architecture, Laws of Software Architecture
- fitness functions, Engineering Practices, Balancing Architecture and Hands-On Coding, Fitness Functions-Distance from the main sequence fitness function
- flame effects, Manipulating Time
- flow, state of, Integrating with the Development Team
- Foote, Brian, Big Ball of Mud
- Ford, Neal, Analyzing Trade-Offs, Presenting, The 4 C’s of Architecture, Parting Words of Advice
- Fowler, Martin, Introduction, History, Granularity, Be Pragmatic, Yet Visionary
- front cache, Near-Cache Considerations
- front controller pattern, Choreography and Orchestration
- frontends
- Frozen Caveman anti-pattern, Technical Breadth
- full backing cache, Near-Cache Considerations
- functional aspects of software, Cross-Cutting Architecture Characteristics
- functional cohesion, Architectural Quanta and Granularity
- functions or methods, formula for calculating cyclomatic complexity, Structural Measures
G
- Gawande, Atul, Distance from the main sequence fitness function, Leveraging Checklists
- Generic Architecture (anti-pattern), Extracting Architecture Characteristics from Domain Concerns
- Going, Going, Gone case study, Architectural Quanta and Granularity-Case Study: Going, Going, Gone
- Going, Going, Gone: discovering components case study, Case Study: Going, Going, Gone: Discovering Components-Case Study: Going, Going, Gone: Discovering Components
- governance for architecture characteristics, Governance and Fitness Functions
- granularity
- Groundhog Day anti-pattern, Groundhog Day Anti-Pattern
- group potential, Team Warning Signs
I
- "-ilities", Defining Software Architecture
- implicit architecture characteristics
- incremental builds for presentations, Incremental Builds
- infodecks versus presentations, Infodecks Versus Presentations
- InfoQ website, The 20-Minute Rule
- infrastructure services, Infrastructure Services
- initial components, identifying, Identifying Initial Components
- initiating event, Broker Topology, Mediator Topology
- installability, Structural Architecture Characteristics
- integrity, Cross-Cutting Architecture Characteristics
- IntelliJ IDEA IDE, Examples and Use Cases
- interfaces, architecturally significant decisions impacting, Architecturally Significant
- International Organization for Standards (ISO)
- internationalization (i18n), architecture characteristics and, Explicit Characteristics
- interoperability, Cross-Cutting Architecture Characteristics, Case Study: Going, Going, Gone
- interpersonal skills for architects, Possess Interpersonal Skills
- Inverse Conway Maneuver, Architecture Partitioning, Domain partitioning
- invisibility in presentations, Invisibility
- Irrational Artifact Attachment anti-pattern, Tools
- Isis framework, Entity trap
- Italy-ility, Cross-Cutting Architecture Characteristics
- Ivory Tower Architect anti-pattern, Implicit Characteristics, Negotiating with Developers
K
- K-weight budgets for page downloads, Operational Measures
- Kafka, processing data streamed to in pipeline architecture, Example
- katas, Extracting Architecture Characteristics from Requirements
- (see also architecture katas)
- keys for diagrams, Keys
- Knuth, Donald, Filters
- Kops, Micha, Architecture Decision Records
- kubernan (to steer), Governing Architecture Characteristics
- kubernetes, Shifting “Fashion” in Architecture
L
- labels in diagrams, Labels
- last participant support (LPS), Preventing Data Loss
- latency
- Latency Monkey, Distance from the main sequence fitness function
- layered architecture, Distance from the main sequence fitness function, Layered Architecture Style-Architecture Characteristics Ratings
- adding layers, Adding Layers
- architecture characteristics ratings, Architecture Characteristics Ratings
- ArchUnit fitness function to govern layers, Distance from the main sequence fitness function
- layers of isolation, Layers of Isolation
- NetArchTest for layer dependencies, Distance from the main sequence fitness function
- other considerations, Other Considerations
- self-assessment questions, Chapter 10: Layered Architecture Style
- technical partitioning in Silicon Sandwiches case study, Technical partitioning
- technical partitioning of components, Technical partitioning
- topology, Topology-Topology
- use cases for, Why Use This Architecture Style
- layered monoliths, Architecture Partitioning, Foundations
- layered stack
- layers, drawing tools supporting, Tools
- leadership skills (see negotiation and leadership skills; software architects)
- learnability, Cross-Cutting Architecture Characteristics
- learning something new, The 20-Minute Rule
- least worst architecture, Trade-Offs and Least Worst Architecture, Implicit Characteristics
- legal requirements, Cross-Cutting Architecture Characteristics
- Leroy, Jonny, Architecture Partitioning
- leverageability, Structural Architecture Characteristics
- Lewis, James, History
- libraries, Component Scope
- lines in diagrams, Lines
- localization, Structural Architecture Characteristics
- loggability in Going, Going, Gone case study, Case Study: Going, Going, Gone
- logging
- logical partitioning, database in service-based architecture, Database Partitioning
M
- magnets in drawing tools, Tools
- maintainability, Structural Architecture Characteristics
- making teams effective (see development teams, making effective)
- managing architecture decision records with ADR-tools blog post, Architecture Decision Records
- maturity, Cross-Cutting Architecture Characteristics
- McAfee, Andrew, Using Social Media
- McCabe, Thomas, Sr., Structural Measures
- McCullough, Matthew, Presenting
- McIlroy, Doug, Filters
- mean-time-to-recovery (MTTR)
- mediator topology (event-driven architecture), Topology, Mediator Topology-Mediator Topology
- meetings, controlling, Integrating with the Development Team-Integrating with the Development Team
- member list of processing units, Data grid
- mergers and acquisitions, translation to architecture characteristics, Extracting Architecture Characteristics from Domain Concerns
- message queues, Three-tier
- messages, use for asynchronous communication in microservices, Communication
- messaging
- messaging grid, Virtualized Middleware
- Metaobject protocol, Definition
- microfrontends, Frontends
- microkernel architecture, Microkernel Architecture Style-Architecture Characteristics Ratings
- microservices, Introduction
- bounded context in, Architectural Quanta and Granularity
- components and, Component Scope
- domain partitioning in Silicon Sandwiches case study, Domain partitioning
- implementation of Going, Going, Gone using, Distributed Case Study: Going, Going, Gone
- liaison between operations and architecture, Operations/DevOps
- service-based architecture style and, Service-Based Architecture Style
- "Microservices" blog entry, History
- microservices architecture, Microservices Architecture-Additional References
- API layer, API Layer
- architecture characteristics ratings, Architecture Characteristics Ratings-Architecture Characteristics Ratings
- bounded context in, Bounded Context
- communication in, Communication-Transactions and Sagas
- distributed architecture, Distributed
- frontends, Frontends-Frontends
- history of, History
- operational reuse in, Operational Reuse
- references on, Additional References
- self-assessment questions, Chapter 17: Microservices Architecture
- topology, Topology
- mitigation of architecture risk, Mitigation
- availability risk in nurse diagnostics system example, Availability
- elasticity of nurse diagnostics system example, Elasticity
- security risks in nurse diagnostics system example, Security
- modifiability, Cross-Cutting Architecture Characteristics
- modular monoliths, Architecture Partitioning
- modular programming languages, Definition
- modularity, Modularity-From Modules to Components
- about, Definition-Definition
- fitness functions testing, Fitness Functions-Distance from the main sequence fitness function
- important, but not urgent in software projects, Governance and Fitness Functions
- maintainability and, Cross-Cutting Architecture Characteristics
- measuring, Measuring Modularity-The problems with 1990s connascence
- in pipeline architecture, Architecture Characteristics Ratings
- rating in microkernel architecture, Architecture Characteristics Ratings
- self-assessment questions, Chapter 3: Modularity
- in service-based architecture, When to Use This Architecture Style
- MongoDB
- monolithic architecture
- "More Shell, Less Egg" blog post, Filters
- most frequently used (MFU) cache, Near-Cache Considerations
- most recently used (MRU) cache, Near-Cache Considerations
- Mule ESB, Mediator Topology
- Myers, Glenford J., Modularity
- The Mythical Man Month (Brooks), Team Warning Signs
N
- n-tiered architecture (see layered architecture)
- Naked Objects framework, Entity trap
- name conflicts in programming platforms, Definition
- namespaces, Definition
- near-cache, considerations in space-based architecture, Near-Cache Considerations
- negotiation and leadership skills, Negotiation and Leadership Skills-Summary
- .NET
- Netflix, Chaos Monkey and Simian Army, Distance from the main sequence fitness function
- networks
- fallacies in distributed computing
- network-level protocols, three-tier architecture and, Three-tier
- Neward, Ted, Extracting Architecture Characteristics from Requirements, Parting Words of Advice
- nonfunctional requirements, architecturally significant decisions impacting, Architecturally Significant
- nonrepudiation, Cross-Cutting Architecture Characteristics
- Nygard, Michael, Architecturally Significant
O
- OmniGraffle, Tools
- on-premises implementations of space-based architecture, Cloud Versus On-Premises Implementations
- online auction system example (space-based architecture), Online Auction System
- open versus closed layers, Layers of Isolation
- operating systems, Distributed
- operational measures of architecture characteristics, Operational Measures
- operations
- Oracle BPEL Process Manager, Mediator Topology
- Oracle Coherence, Processing Unit
- orchestration and choreography
- orchestration engines, Orchestration Engine
- orchestration-driven service-oriented architecture, Orchestration-Driven Service-Oriented Architecture-Architecture Characteristics Ratings
- over-specifying architecture characteristics, Implicit Characteristics
- overall costs, Architecture Characteristics Ratings
P
- packages, Definition
- Page-Jones, Meilir, Coupling and Connascence
- partitioning of components
- people skills, Leading Teams by Example-Leading Teams by Example
- performance
- as an architecture characteristic, Operational Architecture Characteristics, Explicit Characteristics
- domain concerns translated to architecture characteristics, Extracting Architecture Characteristics from Domain Concerns
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- multiple, nuanced definitions of, Operational Measures
- operational measures of, Operational Measures
- performance efficiency, defined, Cross-Cutting Architecture Characteristics
- rating in event-driven architecture, Architecture Characteristics Ratings
- rating in layered architecture, Architecture Characteristics Ratings
- rating in microkernel architecture, Architecture Characteristics Ratings
- rating in microservices arhitecture, Architecture Characteristics Ratings
- rating in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- rating in service-based architecture, Architecture Characteristics Ratings
- trade-offs with security, Trade-Offs and Least Worst Architecture
- persistence
- person's network of contact between people, Using Social Media
- physical topology variants in layered architecture, Topology
- pipeline architecture, Pipeline Architecture Style-Architecture Characteristics Ratings
- pipes and filters architecture (see pipeline architecture)
- pipes in pipeline architecture, Topology
- plug-in components, microkernel architecture, Plug-In Components-Registry
- plus (+) and minus (−) sign indicating risk direction, Risk Assessments
- PMD, Examples and Use Cases
- point-to-point plug-in components in microkernel architecture, Plug-In Components
- politics, understanding and navigating, Understand and Navigate Politics
- portability
- pragmatic, being, Be Pragmatic, Yet Visionary
- presentation layer in core system of microkernel architecture, Core System
- Presentation Patterns (Ford et al.), Presenting
- presentations versus infodecks, Infodecks Versus Presentations
- presenting architecture, Diagramming and Presenting Architecture
- (see also diagramming and presenting architecture)
- privacy, Cross-Cutting Architecture Characteristics
- process loss, Team Warning Signs
- process measures for architectural characteristics, Process Measures
- processing event, Broker Topology, Mediator Topology
- processing grid, Processing grid
- processing units, General Topology
- producer filters, Filters
- proof-of-concepts (POCs), Balancing Architecture and Hands-On Coding
- protocol-aware heterogeneous interoperability, Communication
- Pryce, Nat, Architecture Decision Records
- pseudosynchronous communications, Request-Reply
- publish/subscribe messaging model in broker toplogy of event-driven architecture, Broker Topology
R
- radar for personal use, developing, Developing a Personal Radar-Open Source Visualization Bits
- random replacement eviction policy in front cache, Near-Cache Considerations
- React framework, Frontends
- recoverability, Operational Architecture Characteristics
- registry for plug-ins in microkernel architecture, Registry
- reliability, Architecture Characteristics Defined, Operational Architecture Characteristics
- availability versus, Cross-Cutting Architecture Characteristics
- defined, Cross-Cutting Architecture Characteristics
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- in Going, Going, Gone: discovering commponents case study, Case Study: Going, Going, Gone: Discovering Components
- implicit architecture characteristic, Implicit Characteristics
- in service-based architecture, Architecture Characteristics Ratings
- in layered architecture, Architecture Characteristics Ratings
- performance and, Extracting Architecture Characteristics from Domain Concerns
- rating in microkernel architecture, Architecture Characteristics Ratings
- rating in microservices architecture, Architecture Characteristics Ratings
- rating in pipeline architecture, Architecture Characteristics Ratings
- remote access
- replaceability, Cross-Cutting Architecture Characteristics
- replication
- replication unit in processing unit, Processing Unit
- representational consistency, Diagramming and Presenting Architecture
- request orchestrator, Event-Driven Architecture Style
- request processors, Event-Driven Architecture Style
- request-based model (applications), Event-Driven Architecture Style
- request-reply messaging in event-driven architecture, Request-Reply
- requirements
- resilience, Cross-Cutting Architecture Characteristics
- resource utilization, Cross-Cutting Architecture Characteristics
- responsibility, diffusion of, Team Warning Signs
- REST
- restructuring of components, Restructure Components
- reusability, Cross-Cutting Architecture Characteristics
- reuse and coupling, History
- Richards, Mark, Implicit Characteristics
- risk (architecture), analyzing (see architecture risk, analyzing)
- risk assessments (for architecture risk), Risk Assessments
- risk matrix (for architecture risk), Risk Matrix
- risk storming, Risk Storming-Mitigation
- robustness, Operational Architecture Characteristics
- roles and responsibilities, analyzing for components, Analyze Roles and Responsibilities
- Roosevelt, Theodore, Summary
- Ruby on Rails, mappings from website to database, Entity trap
S
- sagas (transactional), Distributed transactions
- scalability, Operational Architecture Characteristics
- elasticity versus, Explicit Characteristics
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- limits for web-based topologies, Space-Based Architecture Style
- low rating in layered architecture, Architecture Characteristics Ratings
- low rating in microkenel architecture, Architecture Characteristics Ratings
- low rating in pipeline architecture, Architecture Characteristics Ratings
- performance and, Extracting Architecture Characteristics from Domain Concerns
- rating in event-driven architecture, Architecture Characteristics Ratings
- rating in microservices arhitecture, Architecture Characteristics Ratings
- rating in orchestration-driven service-oriented architecture, Architecture Characteristics Ratings
- rating in service-based architecture, Architecture Characteristics Ratings
- rating in space-based architecture, Architecture Characteristics Ratings
- solving issues with space-based architecture, Space-Based Architecture Style
- scale, Intersection of Architecture and…
- Schutta, Nathaniel, Presenting
- Second Law of Software Architecture, Laws of Software Architecture
- security, Architecture Characteristics Defined
- consideration as architecture characteristic, Implicit Characteristics
- in cross-cutting architectural characteristics, Cross-Cutting Architecture Characteristics
- defined, Cross-Cutting Architecture Characteristics
- in Going, Going, Gone case study, Case Study: Going, Going, Gone
- risks in nurse diagnostics system example, Security
- trade-offs with performance, Trade-Offs and Least Worst Architecture
- Security Monkey, Distance from the main sequence fitness function
- self-assessment questions, Chapter 1: Introduction-Chapter 24: Developing a Career Path
- separation of concerns, Topology
- separation of technical concerns, Architecture Partitioning
- serialization in Java, Three-tier
- service discovery, Operational Reuse
- Service Info Capture filter, Example
- service locator pattern, Topology
- service meshes, Operational Reuse
- service plane in microservices, Operational Reuse
- service-based architecture, Service-Based Architecture Style-When to Use This Architecture Style
- services, Component Scope
- adding new services layer to architecture, Adding Layers
- decoupling in microservices architecture, Distributed
- granularity for, in microservices, Granularity
- in microkernel architecture core system, Core System
- in microservices implementation of Going, Going, Gone, Distributed Case Study: Going, Going, Gone
- risk assessment based on, Risk Assessments
- in service-based architecture style, Topology
- service instances using named cache in space-based architecture, Data grid
- service layer, Architecture Partitioning
- shapes in diagrams, Shapes
- shells, use with pipeline architecture, Filters
- sidecar pattern, Operational Reuse
- Silicon Sandwiches case study, Case Study: Silicon Sandwiches-Implicit Characteristics
- Silicon Sandwiches partitioning case study, Case Study: Silicon Sandwiches: Partitioning-Technical partitioning
- Simian Army, Distance from the main sequence fitness function
- simplicity
- slides in presentations, Slides Are Half of the Story
- social media, using, Using Social Media
- software architects, Introduction
- boundary types created for development teams, Team Boundaries
- developing a career path, Developing a Career Path-Parting Words of Advice
- expectations of, Expectations of an Architect-Understand and Navigate Politics
- integration with development team, Integrating with the Development Team-Integrating with the Development Team
- leadership skills, The Software Architect as a Leader-Leading Teams by Example
- level of control on development teams, How Much Control?-How Much Control?
- leveraging checklists for development teams, Leveraging Checklists-Software Release Checklist
- making development teams effective, summary of important points, Summary
- negotiation and facilitation skills, Negotiation and Facilitation-The Software Architect as a Leader
- observing development team warning signs, Team Warning Signs-Team Warning Signs
- personality types, Architect Personalities-Effective Architect
- providing guidance to development teams, Providing Guidance-Providing Guidance
- role in components, Architect Role-Technical partitioning
- software architecture
- software development
- software release checklist, Software Release Checklist
- space-based architecture, Space-Based Architecture Style-Architecture Characteristics Ratings
- advantages of, Space-Based Architecture Style
- architecture characteristics ratings, Architecture Characteristics Ratings
- cloud vs. on-premises implementations, Cloud Versus On-Premises Implementations
- data collisions, Data Collisions-Data Collisions
- general topology, General Topology
- implementation examples, Implementation Examples-Online Auction System
- near-cache, considerations with, Near-Cache Considerations
- replicated vs. distributed caching in, Replicated Versus Distributed Caching-Replicated Versus Distributed Caching
- self-assessment questions, Chapter 15: Space-Based Architecture
- Spring Integration, Mediator Topology
- stamp coupling, Fallacy #3: Bandwidth Is Infinite
- standards, using ADRS for, Using ADRs for Standards
- static connascence, Coupling and Connascence
- status of an ADR, Status
- stencils/templates, drawing tools supporting, Tools
- strangler pattern, Process
- strategic positioning, justification for architecture decisions, Groundhog Day Anti-Pattern
- strategy pattern, Understand and Navigate Politics
- structural architecture characteristics, Structural Architecture Characteristics
- structural measures of architectural characteristics, Structural Measures, Structural Measures
- structure of the system, Defining Software Architecture
- structure, architecturally significant decisions impacting, Architecturally Significant
- structured programming languages, Definition
- Sun Tzu, Negotiating with Business Stakeholders
- supportability, Structural Architecture Characteristics, Cross-Cutting Architecture Characteristics
- Swedish warship (Vasa) case study, Extracting Architecture Characteristics from Domain Concerns
- synchronous comunication, Communication, Decision Criteria
- synchronous connascence, Coupling and Connascence, Architectural Quanta and Granularity
- system level, architecture characteristics at, Scope of Architecture Characteristics
T
- teams, making effective (see development teams, making effective)
- technical and business justifications for architecture decisions, Groundhog Day Anti-Pattern, Providing Guidance
- technical breadth, Technical Breadth-Technical Breadth
- technical debt, tackling, Balancing Architecture and Hands-On Coding
- technical decisions versus architecture decisions, Architecturally Significant
- technical knowledge, solving technical issues and, Leading Teams by Example
- technical partitioning (components)
- technology bubbles, Developing a Personal Radar
- technology changes, impact on architecture styles, Shifting “Fashion” in Architecture
- Technology Radar (see ThoughtWorks Technology Radar)
- Template Method design pattern, Implicit Characteristics
- temporary queues, Request-Reply
- test-driven development (TDD), resulting in less complex code, Structural Measures
- testability
- tester filters, Filters
- testing
- ThoughtWorks Build Your Own Radar tool, Open Source Visualization Bits
- ThoughtWorks Technology Radar, The 20-Minute Rule, The ThoughtWorks Technology Radar-Rings
- three-tier architecture, Three-tier
- language design and long-term implications, Three-tier
- time and budget, translation to architecture characteristics, Extracting Architecture Characteristics from Domain Concerns
- time behavior, Cross-Cutting Architecture Characteristics
- time to market
- timeouts, Fallacy #1: The Network Is Reliable
- titles in diagrams, Titles
- top-level partitioning in an architecture, Architecture Partitioning
- topics and queues, trade-offs between, Analyzing Trade-Offs
- topology (network), changes in, Fallacy #5: The Topology Never Changes
- trade-offs in software architecture, Laws of Software Architecture, Parting Words of Advice
- transactional sagas, Distributed transactions
- transactions
- ACID or BASE, Service Design and Granularity
- across boundaries in microservices, not recommended, Distributed
- and bounded contexts in microservices, Granularity
- difficulty of distributed transactions, Architecture Characteristics Ratings
- distributed, Distributed transactions
- in orchestration-driven service-oriented architecture, Orchestration Engine
- in service-based architecture, When to Use This Architecture Style
- lack of ability to restart in broker toplogy of event-driven architecture, Broker Topology
- and sagas in microservices' communication, Transactions and Sagas-Transactions and Sagas
- transfomer filters, Filters
- transitions from presentation tools, Manipulating Time
- transport cost in distributed computing, Fallacy #7: Transport Cost Is Zero
- traveling salesperson problem, Fitness Functions
- tuple space, General Topology
- twenty-minute rule, The 20-Minute Rule-The 20-Minute Rule
- two-tier architecture, Client/Server
U
- ubiquitous language, use of, Cross-Cutting Architecture Characteristics
- Unified Modeling Language (UML), UML
- unitary architecture, Unitary Architecture
- unknown unknowns in software systems, Engineering Practices
- unplanned downtime, Negotiating with Business Stakeholders
- upgradeability, Structural Architecture Characteristics
- Uptime Calculator transformer filter, Example
- Uptime filter (tester filter), Example
- usability
- usability/achievability, Cross-Cutting Architecture Characteristics
- user error protection, Cross-Cutting Architecture Characteristics
- user interfaces (UIs)
- access to services in service-based architecture via, Topology
- as part of bounded context in DDD, Frontends
- in distributed architecture Going, Going, Gone case study, Distributed Case Study: Going, Going, Gone
- microservices with monolithic UI, Frontends
- separate UI in microkernel architecture, Core System
- variants in service-based architecture, Topology Variants
- user satisfaction