In computer software, business logic or domain logic is the part of the program that encodes the real-world business rules that determine how data can be created, stored, and changed. It is contrasted with the remainder of the software that might be concerned with lower-level details of managing a database or displaying the user interface, system infrastructure, or generally connecting various parts of the program.

Details and example

Business logic:

  • Prescribes how business objects interact with one another
  • Enforces the routes and the methods by which business objects are accessed and updated

Business rules:

  • Model real-life business objects (such as accounts, loans, itineraries, and inventories)

Business logic comprises:[1]

  • Workflows that are the ordered tasks of passing documents or data from one participant (a person or a software system) to another.

Business logic should be distinguished from business rules.[2] Business logic is the portion of an enterprise system which determines how data is transformed or calculated, and how it is routed to people or software (workflow). Business rules are formal expressions of business policy. Anything that is a process or procedure is business logic, and anything that is neither a process nor a procedure is a business rule. Welcoming a new visitor is a process (workflow) consisting of steps to be taken, whereas saying every new visitor must be welcomed is a business rule. Further, business logic is procedural whereas business rules are declarative.[3]

For example, an e-commerce website might allow visitors to add items to a shopping cart, specify a shipping address, and supply payment information. The business logic of the website might include a workflow such as:

  • The sequence of events that happens during checkout, for example a multi-page form which first asks for the shipping address, then for the billing address, next page will contain the payment method, and last page will show congratulations.

There will be also business rules of the website:

  • Adding an item more than once from the item description page increments the quantity for that item.
  • Specific formats that the visitor's address, email address, and credit card information must follow.
  • A specific communication protocol for talking to the credit card network

The web site software also contains other code which is not considered part of business logic nor business rules:

  • Peripheral content not related to the core business data, such as the HTML that defines the colors, appearance, background image, and navigational structure of the site
  • Generic error-handling code (e.g. which displays the HTTP Error Code 500 page)
  • Initialization code that runs when the web server starts up the site, which sets up the system
  • Monitoring infrastructure to make sure all the parts of the site are working properly (e.g. the billing system is available)
  • Generic code for making network connections, transmitting objects to the database, parsing user input via HTTP POST events, etc.

Business logic and tiers/layers