Fundamentals of Software Architecture - Deepstash
Music and Productivity

Learn more about books with this collection

How to choose the right music for different tasks

The benefits of listening to music while working

How music affects productivity

Music and Productivity

Discover 36 similar ideas in

It takes just

4 mins to read

First Law Of Software Architecture

There are always trade offs

Achieve least worst architecture

Characteristics

  • Availability
  • Reliability
  • Testability
  • Scalability
  • Security
  • Agility
  • Fault tolerance
  • Elasticity
  • Recoverability
  • Performance
  • Deployability
  • Learn ability

1

1 read

Identifying Architecture Characteristics

Architecture partitioning

  • Technical / Layered (all repositories, models, controllers in separate folders)
  • Domain / Modular (logic is organised by feature, sliced across models, controllers, repositories)

Conway law

  • Organisations are constrained to produce designs which are copies of communication structures of these organisations

Component Design

  • Action/actors approach
  • Event storming - relies on messages
  • Work flow approach

Architecture style

  • Monolithic
  1. Layered
  2. Pipeline
  3. Microkernel
  • Distributed
  1. Service based
  2. Event driven
  3. Space based
  4. Service oriented
  5. Microservices

1

0 reads

Architecture Fallacies

When considering distributed architecture

  1. Network is not always reliable
  2. Latency is never zero
  3. Bandwidth is not infinite
  4. Transport cost is not zero
  5. Network not always secure

1

0 reads

Monolithic Architecture

1. Layered / N tiered architecture

  • Components are organised into logical horizontal layers (eg. Presentation layer, business layer, persistence layer, database)

Pros

  • Good for small simple apps or Web sites where budget is tight and time is short

Cons

  • Deployability, Low elasticity and scalability

2. Pipeline Architecture

  • Eg. Filter pipe Filter pipe
  • Pipes form the communication channel, is unidirectional, point to point
  • Filters - producer, transformer, tester, consumer

3. Micro kernel Architecture

Product based applications (packaged for installation on consumer)

Core system and Plug in components

1

0 reads

Distributed Architecture

1. Service based architecture

  • Partitioned/driven by domain
  • Some UI, independent domain services, monolithic database (or multiple)
  • If shared db, then use shared library for database entity objects

2. Event driven

  • Asynchronous, highly scalable, high performance
  • Mediator topology
  • Broker topology - rabbitMQ, no need Central event orchestration

1

0 reads

IDEAS CURATED BY

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Personalized microlearning

100+ Learning Journeys

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates