> For the complete documentation index, see [llms.txt](https://luis-souza-1.gitbook.io/wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://luis-souza-1.gitbook.io/wiki/software-engineer/software-architectures.md).

# Arquiteturas de Software

## Arquiteturas e Padrões Arquiteturais

* [4+1 Architectural View Model](https://en.wikipedia.org/wiki/4%2B1_architectural_view_model)
* [Actor model](https://en.wikipedia.org/wiki/Actor_model)
* [Ambassador](https://www.magalix.com/blog/kubernetes-patterns-the-ambassador-pattern)
* [API First](https://swagger.io/resources/articles/adopting-an-api-first-approach/)
* [API Gateway](https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41)
* [APP Shell](https://developers.google.com/web/fundamentals/architecture/app-shell?authuser=1)
* [Backend-for-Frontend (BFF)](https://medium.com/better-programming/modern-day-architecture-design-patterns-for-software-professionals-9056ee1ed977)
* [BETH](https://github.com/ethanniser/the-beth-stack)
* [Blackboard](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
* [BLoC (Business Logic Components)](https://www.didierboelens.com/2018/08/reactive-programming-streams-bloc/)
* [Branch by Abstraction](https://martinfowler.com/bliki/BranchByAbstraction.html)
* [Broker](http://www.dossier-andreas.net/software_architecture/broker.html)
* [Bulkhead](https://learn.microsoft.com/en-us/azure/architecture/patterns/bulkhead)
* [Cell-Based Architectures](https://www.infoq.com/minibooks/cell-based-architecture-2024/)
* [Cellular Architecture](https://en.wikipedia.org/wiki/Cellular_architecture)
* [Circuit Breaker](https://medium.com/geekculture/design-patterns-for-microservices-circuit-breaker-pattern-276249ffab33)
* [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)
* [Client-server](https://levelup.gitconnected.com/software-architecture-the-important-architectural-patterns-you-need-to-know-a1f5ea7e4e3d)
* [Cloud Architecture](https://orkhanscience.medium.com/software-architecture-patterns-5-mins-read-e9e3c8eb47d2)
* [Content-Based Router](https://www.enterpriseintegrationpatterns.com/ContentBasedRouter.html)
* [Coreographed Architecture](https://solace.com/blog/microservices-choreography-vs-orchestration/)
* [CQRS (Command Query Responsibility Segregation)](https://microservices.io/patterns/data/cqrs.html)
* [Declarative UI](https://docs.flutter.dev/get-started/flutter-for/declarative)
* [DIET](https://rasa.com/blog/introducing-dual-intent-and-entity-transformer-diet-state-of-the-art-performance-on-a-lightweight-architecture/)
* [Distributed Systems](https://www.splunk.com/en_us/data-insider/what-are-distributed-systems.html)
  * [Adapters](https://learning.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch04.html#idm139824738845552)
  * [Ambassador](https://www.magalix.com/blog/kubernetes-patterns-the-ambassador-pattern)
  * [At Least Once](https://www.cloudcomputingpatterns.org/at_least_once_delivery/)
  * [Coordinated Batch Processing](https://www.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch12.html)
  * [Event-Driven Batch Processing](https://www.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch11.html#:~:text=These%20sort%20of%20event%2Ddriven,various%20stages%20and%20their%20coordination.)
  * [Initializer](https://itnext.io/application-architecture-for-microservices-sidecar-pattern-c5c0074e8f1d)
  * [Replicated Load-Balanced Services](https://www.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch05.html#:~:text=The%20simplest%20distributed%20pattern%2C%20and,are%20capable%20of%20supporting%20traffic.)
  * [Scatter/Gather](https://www.prostdev.com/post/intro-to-scatter-gather-integration-pattern)
  * [Self Awareness](https://itnext.io/application-architecture-for-microservices-sidecar-pattern-c5c0074e8f1d)
  * [Sharded Services](https://www.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch06.html)
  * [Sidecar](https://medium.com/better-programming/modern-day-architecture-design-patterns-for-software-professionals-9056ee1ed977)
  * [Work Queue Systems](https://www.oreilly.com/library/view/designing-distributed-systems/9781491983638/ch10.html)
* [DOTS (Data Oriented Technology Stack)](https://hub.packtpub.com/what-is-unitys-new-data-oriented-technology-stack-dots/)
* [ECS (Entity Component System)](https://pt.wikipedia.org/wiki/Entity-component-system)
* [Erasure Coding](https://www.geeksforgeeks.org/erasure-coding-in-system-design/)
* [Event-bus](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
* [Event Driven Architecture](https://microservices.io/patterns/data/event-driven-architecture.html)
  * [Eventual Consistency](https://en.wikipedia.org/wiki/Eventual_consistency)
  * [Event Carried State Transfer](https://martinfowler.com/articles/201701-event-driven.html)
  * [Event Collaboration](https://martinfowler.com/eaaDev/EventCollaboration.html)
  * [Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html#:~:text=The%20fundamental%20idea%20of%20Event,as%20the%20application%20state%20itself.)
  * [Memory Image](https://martinfowler.com/bliki/MemoryImage.html)
  * [Saga](https://microservices.io/patterns/data/saga.html)
    * [Camunda](https://camunda.com/)
    * [Zeebe](https://zeebe.io/)
  * [Transactional Outbox](https://medium.com/dev-genius/microservice-architecture-communication-design-patterns-70b37beec294)
  * [Transactional Inbox](https://event-driven.io/en/outbox_inbox_patterns_and_delivery_guarantees_explained/)
  * [Two Phase Commit (2PC)](https://en.wikipedia.org/wiki/Two-phase_commit_protocol#:~:text=The%20commit%20phase%2C%20in%20which,result%20to%20all%20the%20participants.)
  * [Event Interception](https://martinfowler.com/articles/patterns-legacy-displacement/event-interception.html)
* [Externalized Configuration](https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41)
* [FAC (Feature Access Control)](https://www.flagship.io/feature-flag-access-control/)
* [FDD (Feature Driven Development)](https://www.devmedia.com.br/introducao-ao-fdd-feature-driven-development/27971)
* [Feature Parity](https://martinfowler.com/articles/patterns-legacy-displacement/feature-parity.html)
* [Feature Oriented Architecture](https://medium.com/@nate_wang/feature-oriented-architecture-for-web-applications-2b48e358afb0)
* [Feature-Sliced Design](https://feature-sliced.design/)
* [Federated Architecture](https://en.wikipedia.org/wiki/Federated_Architecture)
* [Hexagonal Architecture](https://en.wikipedia.org/wiki/Hexagonal_architecture_\(software\))
* [In-Memory Database Architecture](https://dzone.com/articles/in-memory-database-architecture-ten-years-of-exper)
* [Infrastructure-Driven Packaging](https://codeforfunandmoney.wordpress.com/2016/07/13/domain-driven-design-and-package-organization/)
* [Interpreter](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
* [LMAX Architecture](https://martinfowler.com/articles/lmax.html)
* [Layered](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
  * [Front Controller](https://en.wikipedia.org/wiki/Front_controller)
* [Macroservice](https://dzone.com/articles/micro-service-mini-service-and-macro-service)
* [Master-slave](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
* [MEAN](https://www.mongodb.com/mean-stack)
* [Medallion Architecture](https://www.infoq.com/articles/rethinking-medallion-architecture/)
* [MERN](https://www.mongodb.com/mern-stack)
* [Microapps Architecture](https://increment.com/mobile/microapps-architecture/)
* [Microkernel Architecture](https://priyalwalpita.medium.com/software-architecture-patterns-microkernel-architecture-97cee200264e)
* [Microservices](https://levelup.gitconnected.com/software-architecture-the-important-architectural-patterns-you-need-to-know-a1f5ea7e4e3d)
  * [Aggregator Pattern](https://medium.com/distributed-knowledge/scalable-web-architectures-concepts-design-6fd372ee4541)
  * [Branch pattern](https://medium.com/distributed-knowledge/scalable-web-architectures-concepts-design-6fd372ee4541)
  * [Branch by Abstraction](https://martinfowler.com/bliki/BranchByAbstraction.html)
  * [Verify Branch by Abstraction](https://www.stevesmith.tech/blog/application-pattern-verify-branch-by-abstraction/)
  * [Chained or Chain of Responsibility (CoR)](https://medium.com/distributed-knowledge/scalable-web-architectures-concepts-design-6fd372ee4541)
  * [Integration Pattern](https://medium.com/distributed-knowledge/scalable-web-architectures-concepts-design-6fd372ee4541)
  * [Microservice Chassis](https://microservices.io/patterns/microservice-chassis.html)
  * [ReportingDatabase/Database-as-a-Service Interface](https://martinfowler.com/bliki/ReportingDatabase.html)
  * Schema Validation
    * [Async API](https://www.asyncapi.com/)
    * [Avro](https://avro.apache.org/docs/current/spec.html)
    * [Cloud Events](https://cloudevents.io/)
    * [Confluent Schema Registry](https://docs.confluent.io/platform/current/schema-registry/index.html)
    * [JSON Schema](https://json-schema.org/)
    * [JSON Schema Diff Validator](https://www.npmjs.com/package/json-schema-diff-validator)
    * [Karapace](https://karapace.io/)
    * [Lenses](https://lenses.io/)
    * [OpenAPI](https://www.openapis.org/)
    * [OpenAPI Diff](https://github.com/Azure/openapi-diff)
    * [ProtoLock](https://protolock.dev/)
    * [Schema Registry](https://docs.confluent.io/platform/current/schema-registry/index.html)
  * [Service Mesh](https://www.infoq.com/br/articles/service-mesh-ultimate-guide/)
    * [Envoy](https://www.envoyproxy.io/)
    * [Istio](https://istio.io/)
    * [Linkerd](https://linkerd.io/)
  * [Strangler Fig](https://martinfowler.com/bliki/StranglerFigApplication.html)
* [MDD (Model Driven Development)](https://homepages.dcc.ufmg.br/~figueiredo/disciplinas/aulas/mdd-termos_v01.pdf)
* [Miniservice](https://blog.bitsrc.io/microservices-are-dead-long-live-miniservices-40e4ccf4741)
* [Modular Applications with Blueprints](https://flask.palletsprojects.com/en/2.3.x/blueprints/)
* [Monolith In A Box](https://semaphoreci.com/blog/monolith-microservices)
* [Monolithic Architecture](https://medium.com/distributed-knowledge/scalable-web-architectures-concepts-design-6fd372ee4541)
* [Multi Tenant](https://levelup.gitconnected.com/multi-tenant-architecture-8c1f597e069c)
* [Multi Thread](https://en.wikipedia.org/wiki/Multithreading_\(computer_architecture\)#:~:text=In%20computer%20architecture%2C%20multithreading%20is,This%20approach%20differs%20from%20multiprocessing.)
* [MVC (Model View Controller)](https://pt.wikipedia.org/wiki/MVC)
  * [Front Controller](https://en.wikipedia.org/wiki/Front_controller)
* [MVI (Model View Intent)](https://fueled.com/blog/what-is-mvi-model-view-intent/)
* [MVP (Model View Presenter)](https://pt.wikipedia.org/wiki/Model-view-presenter)
* [MVT (MOdel View Template)](https://www.treinaweb.com.br/blog/entendendo-o-mtv-do-django)
* [MVVM (Movel View View Model)](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel)
* [N-Tier Architecture/N-Tiered Architecture](https://www.techopedia.com/definition/17185/n-tier-architecture#:~:text=N%2Dtier%20architecture%20is%20a,both%20logically%20and%20physically%20separated.\&text=N%2Dtier%20architecture%20is%20also%20known%20as%20multi%2Dtier%20architecture.)
  * [Front Controller](https://en.wikipedia.org/wiki/Front_controller)
* [Nanoservice](https://www.infoq.com/br/news/2014/07/nano-services/)
* [One action for file](https://medium.com/@nate_wang/a-new-approach-for-managing-redux-actions-91c26ce8b5da#.9em77fuwk)
* [Onion Architecture](https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/)
* [Peer-to-peer](https://towardsdatascience.com/10-common-software-architectural-patterns-in-a-nutshell-a0b47a1e9013)
* [Pipe-filter](https://levelup.gitconnected.com/software-architecture-the-important-architectural-patterns-you-need-to-know-a1f5ea7e4e3d)
* [Plugin Architecture](https://medium.com/omarelgabrys-blog/plug-in-architecture-dec207291800)
* [Polyliths Architecture](https://viteconf-2024-polyliths.slides.igor.dev/1)
* [Prescriptive Code Structure](https://www.bdcnetwork.com/blog/prescriptive-vs-performance-building-codes)
* [Proxy](https://www.citrix.com/pt-br/products/citrix-adc/form/choose-the-right-proxy-architecture/)
  * [Envoy](https://www.envoyproxy.io/)
* [Reactive Architecture](https://dzone.com/articles/reactive-architecture-benefits-amp-use-cases#:~:text=A%20Reactive%20system%20is%20an,responsiveness%20under%20failure%2C%20and%20more.)
* [Realtime Devent Driven](https://www.infoq.com/br/articles/realtime-event-driven-ecosystem/)
* [Replay System](https://www.gamedeveloper.com/programming/developing-your-own-replay-system)
* [Responsibility Driven Design](https://en.wikipedia.org/wiki/Responsibility-driven_design)
* [Reusable API's](https://dzone.com/articles/minimizing-microservices-complexity-with-reusable-apis)
* [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html)
* [Sacrificial Architecture](https://martinfowler.com/bliki/SacrificialArchitecture.html)
* [Saga](https://towardsdatascience.com/microservice-architecture-and-its-10-most-important-design-patterns-824952d7fa41)
* [SBA (Service Based Architecture)](https://www.infoq.com/news/2016/10/service-based-architecture/)
* [Single Activity Pattern](https://levelup.gitconnected.com/modernize-your-android-app-with-the-single-activity-pattern-1526407a7d4)
* [Scatter/Gather](https://www.prostdev.com/post/intro-to-scatter-gather-integration-pattern)
* [Screaming Architecture](https://blog.cleancoder.com/uncle-bob/2011/09/30/Screaming-Architecture.html)
* [SEDA (Staged Event Driven Architecture)](https://en.wikipedia.org/wiki/Staged_event-driven_architecture)
* [Segment Oriented Architecture](https://www.toolbox.com/tech/it-strategy/blogs/what-is-segment-architecture-071308/)
* [Semi Shared](https://dzone.com/articles/architecting-database-systems-for-the-microservice)
* [Service Oriented Architecture (SOA)](https://medium.com/@SoftwareDevelopmentCommunity/what-is-service-oriented-architecture-fa894d11a7ec#:~:text=Service%2DOriented%20Architecture%20\(SOA\),of%20vendors%20and%20other%20technologies.)
* [Service Template](https://microservices.io/patterns/service-template.html)
* \[Shared Nothing Architecture]\(<https://en.wikipedia.org/wiki/Shared-nothing\\_architecture#:\\~:text=A%20shared%2Dnothing%20architecture%20(SN,the%20same%20memory%20or%20storage>.)
* [Sidecar](https://medium.com/better-programming/modern-day-architecture-design-patterns-for-software-professionals-9056ee1ed977)
  * [Envoy](https://www.envoyproxy.io/)
* [Single Thread](https://en.wikipedia.org/wiki/Thread_\(computing\))
* [Space Based Architecture (SBA)](https://en.wikipedia.org/wiki/Space-based_architecture#:~:text=Space%2Dbased%20architecture%20\(SBA\),using%20the%20tuple%20space%20paradigm.)
  * [AbInitio](https://www.abinitio.com/en/)
  * [Apache Ignite](https://ignite.apache.org/)
  * [HazelCast](https://hazelcast.com/)
  * [Oracle Coherence](https://www.oracle.com/middleware/technologies/coherence.html)
* [Strangler](https://microservices.io/patterns/refactoring/strangler-application.html)
* [Streaming System](https://www.gamedeveloper.com/programming/streaming-for-next-generation-games)
* [Subscription Based Architecture](https://www.researchgate.net/figure/Overview-of-subscription-based-architecture_fig4_220367928)
* [Vertical Slice Architecture](https://garywoodfine.com/implementing-vertical-slice-architecture/)
* [VIPER](https://medium.com/@pinarkocak/mvc-mvp-and-mvvm-design-patterns-82317d6efeac)
* [Web Queue Worker](https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/web-queue-worker)

## Documentação

* [4+1](https://en.wikipedia.org/wiki/4%2B1_architectural_view_model)
* [Arc42](https://arc42.org/overview)
* [Archimate](https://elemarjr.com/arquivo/archimate-o-que-e-para-que-serve-e-como-comecar-a-aprender/#:~:text=Archimate%20%C3%A9%20uma%20linguagem%20visual,e%20aplica%C3%A7%C3%A3o%20bem%20mais%20amplos.)
  * [ArchimateTool](https://www.archimatetool.com/)
* [ADR's](https://adr.github.io/)
* [Architecture Flipbook](https://learning.oreilly.com/library/view/design-it/9781680502923/f_0128.xhtml)
* [Architecture Haiku](https://www.neverletdown.net/2015/03/architecture-haiku.html)
* [ASR's](https://en.wikipedia.org/wiki/Architecturally_significant_requirements)
* [ATM (Architecture Tradeoff Analysis Method)](https://en.wikipedia.org/wiki/Architecture_tradeoff_analysis_method)
* [C4 (Contexto, Containers, Componentes e Códigos)](https://www.infoq.com/br/articles/C4-architecture-model/)
  * [Structurizr](https://structurizr.com/)
* [CDD (Capability Development Document)](https://acqnotes.com/acqnote/acquisitions/capability-development-document-cdd)
* [CMDB (Configuration management database)](https://en.wikipedia.org/wiki/Configuration_management_database)
* [Class Diagram](https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-class-diagram/)
* [Cloud Events](https://cloudevents.io/)
* [COCOMO (Constructive Cost Model)](http://softwarecost.org/tools/COCOMO/)
* [CONOPSSE (Concept of Operations)](https://acqnotes.com/acqnote/careerfields/concept-of-operations-conopsse)
* [COSYSMO (Constructive Systems Engineering Cost Model)](https://en.wikipedia.org/wiki/COSYSMO)
* [CPD (Capability Production Document)](https://acqnotes.com/acqnote/tasks/capability-production-documentrequirements)
* [CRC (Component Responsibility Cards)](https://en.wikipedia.org/wiki/Class-responsibility-collaboration_card)
* [Design Document](https://www.toptal.com/freelance/why-design-documents-matter)
* [Diagrama de Contexto](https://escritoriodeprojetos.com.br/diagrama-de-contexto)
* [Diagrama Dinâmico](https://engsoftmoderna.info/cap4.html)
* [EDD (Engineering Design Docs)](https://medium.com/machine-words/writing-technical-design-docs-71f446e42f2e)
* [Event Catalog](https://www.eventcatalog.dev/)
* [Experience API Layer](https://medium.com/navalia/customer-experience-apis-the-missing-layer-58ecb93faa4b)
* [Explanatory Model](https://en.m.wikipedia.org/wiki/Explanatory_model)
* [FR's](https://en.wikipedia.org/wiki/Functional_requirement)
* [Fragments Architecture](https://blog.cloudflare.com/better-micro-frontends/)
* [Framework for Technical Documentation](https://diataxis.fr/)
* [GQM (Goal, Question, Metric)](https://en.wikipedia.org/wiki/GQM)
* [Graphviz](https://graphviz.org/)
* [ICD (Initial Capabilities Document)](https://acqnotes.com/acqnote/tasks/initial-capabilities-documentrequirements)
* [Inception Deck](https://en.abi-agile.com/inception-deck/)
* [JAD (Joint Application Design)](https://en.wikipedia.org/wiki/Joint_application_design#:~:text=Joint%20application%20design%20\(JAD\)%20is,information%20systems%20for%20a%20company.)
* [Kroki](https://kroki.io/)
* [Marketing Requirements Document (MRD)](https://280group.com/what-is-product-management/documents-templates/market-requirements-document-mrd/#:~:text=An%20MRD%20or%20Market%20Requirements,and%20when%20that%20problem%20occurs.)
* [MHC](https://medium.com/qe-unit/mach-architecture-the-quality-engineering-guide-9e28d37da936)
* [Mini QAW (Quality Attribute Workshop)](https://re-magazine.ireb.org/articles/discover-quality-requirements-with-the-mini-qaw/)
* [NFR's](https://en.wikipedia.org/wiki/Non-functional_requirement)
* \[ORD (Operational Requirements Document)]\(<https://acqnotes.com/acqnote/careerfields/operational-requirements-document#:\\~:text=An%20Operational%20Requirements%20Document%20(ORD,Concept%20of%20Operations%20(CONOPS)>.)
* [PASSME](https://jfdeclercq.biz/en/2016/06/02/passme/)
* [PoV (Point of View)](https://www.merriam-webster.com/words-at-play/point-of-view-first-second-third-person-difference)
* [PRD (Product Requirements Document)](https://medium.com/machine-words/writing-technical-design-docs-71f446e42f2e)
* [SAD (Software Architecture Description)](https://en.wikipedia.org/wiki/Software_architecture_description)
* [SRS (Software Requirements Specification)](https://www.perforce.com/blog/alm/how-write-software-requirements-specification-srs-document)
* [SRD (System Requirements Document)](https://acqnotes.com/acqnote/careerfields/system-requirements-document)
* [TDD (Technical Design Docs)](https://medium.com/machine-words/writing-technical-design-docs-71f446e42f2e)
* [TRD (Technical Requirements Document)](https://medium.com/machine-words/writing-technical-design-docs-71f446e42f2e)
* [UML (Unified Modeling Language)](https://pt.wikipedia.org/wiki/UML)
  * [Plant Text](https://www.planttext.com/)
  * [Plant UML](https://plantuml.com/)
* [Wardley Mapping](https://learnwardleymapping.com/)

## Links

* <https://github.com/DovAmir/awesome-design-patterns>
* <https://azeynalli1990.medium.com/software-architecture-cheat-sheet-for-daily-usage-9923922ea75b>
* <https://nealford.com/katas/>
* <https://github.com/stemmlerjs/software-design-and-architecture-roadmap>
* <https://vivek-singh.medium.com/system-design-cheat-sheet-318ba2e34723>
