Hyperledger Fabric was designed around a few key features and use cases that were seen as critical for enterprise users.
At the core is the ledger itself. The ledger is a set of blocks, and each block holds a set of transactions. A transaction is anything that updates the state of the blockchain. Transactions, in turn, are performed by smart contract code installed on to the blockchain (called Chaincode). Let's look at how blocks and transactions are formed.
Each block is ordered in sequence, and inside each block is a set of transactions. Those transactions are also stored as happening in a specific sequence. Unlike other blockchains, the creation of the transaction and the sequence it is eventually given are not necessarily performed at the same time or on the same computer. This is because the ordering of transactions and the execution of transactions are separated. In Hyperledger Fabric, computers being used to operate the blockchain can run in three different modes (node types); these are as follows:
- Client: A client acts on behalf of users of the blockchain and submits actions and events to the network as part of an application.
- Peer: Peers process the incoming transactions for validating and handle updating state changes as a result of transactions and chain-code execution. Once they have executed a transaction, they broadcast the result to the network so that the transaction can be handled by an orderer (see the next role).
- Orderer: While peer nodes execute the transactions, orderer nodes take a look at all the executed transactions and decide on the final order in which they are considered to have occurred in the blockchain. The ordering service nodes decide the final order of events and thus decide the final set of events that will be written on to the next block of the blockchain.
It is important to note that a single computer can act as up to all three of these node types on a Fabric blockchain, but this is not necessary. While it is possible for the same computer on a Hyperledger network to both execute transactions and order their sequence, Hyperledger is able to scale more by providing these as distinct services. To illustrate, look at the following diagram (from the Hyperledger documentation):

As you can see, incoming transaction first go to peers, who execute transactions using chaincode/smart contracts and then broadcast successful transactions to the ordering service. Once accepted, the ordering service decides on a final order of transactions, and the resulting transactions sets are re-transmitted to peer nodes, which write the final block on to the chain.