> For the complete documentation index, see [llms.txt](https://claudiu-stanciu.gitbook.io/software-craft/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://claudiu-stanciu.gitbook.io/software-craft/patterns/enterprise-patterns.md).

# Enterprise patterns

Enterprise patterns referring more to the general architecture/design

* Idempotency
  * applying the same action multiple times will have the same result
  * eg: adding/subtracting is not idempotent; setting a value to X is idempotent
* Event sourcing
  * capture every event in an event object, and store this in order in a log (audit log, time-series data store)
  * can recreate the state by re-running all events
* CQRS (Command Query Responsibility Segregation)
  * can use a different model to update information than the model you use to read information
  * one data store for command, and one for query
* Broker/ Messaging bus
* Microservices
* Multi-tier architecture ( 3-tier or n-tier)
* MVC/MVP
* Hexagonal architecture
