Skip to main content
Data Access Object

Also known as

  • Data Access Layer
  • DAO

Intent

The Data Access Object (DAO) design pattern aims to separate the application's business logic from the persistence layer, typically a database or any other storage mechanism. By using DAOs, the application can access and manipulate data without being dependent on the specific database implementation details.


iluwatarAbout 3 minStructuralData accessLayered architecturePersistence
Data Mapper

Also known as

  • Object-Relational Mapping (ORM)

Intent

The Data Mapper pattern aims to create an abstraction layer between the database and the business logic, allowing them to evolve independently. It maps data from the database objects to in-memory data structures and vice versa, minimizing direct dependencies between the application's core logic and the underlying database structure.


iluwatarAbout 3 minBehavioralData accessDecouplingObject mappingPersistence
Event Sourcing

Also known as

  • Event Logging
  • Event Streaming

Intent

Event Sourcing is a design pattern that advocates for the storage of state changes as a sequence of events. Instead of updating a record in a database, all changes are stored as individual events which, when replayed, can recreate the state of an application at any point in time.


iluwatarAbout 3 minArchitecturalDecouplingEvent-drivenFault toleranceMessagingPersistenceScalabilityTransactions