My understanding is that clients are different software environments which run on top of the decentralized computing infrastructure which is the blockchain architecture. The most popular of which by a large margin is Bitcoin Core. This made sense to me but I recently read that different clients process different types of transactions. For example, Bitcoin XT would process different transactions than the Bitcoin protocol. Would this not make it a fork of the original blockchain as opposed to a different type of software. How does Bitcoin Cash come into this also as they process different types of transactions but have their own blockchain? Should they not also be listed as a client?
Since everything is open source, anyone can take something, make some changes and it'll be different.
Some good examples:
- Bitcoin Cash
Just a few examples of someone taking Bitcoin's core code, tweaking it, and releasing it. Given some of them did it in different ways. Doge for example started over with Block 0. It's considered a "new coin". While Bitcoin Cash used the history of Bitcoin up to a specific block, before their changes took effect. This is a hard fork.
A node configured to run (or in some cases simply a flag in the config file) Dash, will not receive/process/store Litecoin blocks. The same way a Bitcoin node will not receive/process/store Bitcoin Cash blocks (once the block where the hard-fork occurred was hit). (I'm aware there are nuances to this but brevity is taking priority)
Finally to touch on your first point, there can be many clients for a specific coin. It's open source. There is no "official" client for Bitcoin as it's decentralized from the ground up. Some chains use a more centralized development process like the Ethereum Foundation. While they provide more input (as well as some communities have more sway over specific chains) it is ultimately up to the individuals running nodes on if they will upgrade and support the changes. This is best highlighted in the hard fork for Ethereum 25 October 2016. Those that did not fork were left with the original code and original coin now referred to as "Ethereum Classic". Those that did upgrade, were then using the current day "Ethereum".
In the end no matter what client is used, it must follow the same basic protocols as the network it's trying to interact with. As long as it does, then it can be used.
Bitcoin and Bitcoin Cash have separate blockchains. A Bitcoin Cash transaction is invalid for a Bitcoin node, and the converse is also true. On the other hand, a Bitcoin node could connect to and communicate with a Bitcoin Cash node (and vice versa), which resulted all of the nodes to share the same pie chart. In late 2017, the Bitcoin Cash nodes changed network magic value. If node A tries to connect to node B, and they have different magic values, they drop the connection as they understand they are nodes of different networks. Since then, BTC and BCH networks are separate and have different pie charts.
Bitcoin XT's situtation was different. Although many nodes switched to it, a chain split (known as hardfork) did not happen, because of the Hong Kong agreement.