I'm looking to setup database mirroring with replication.
Database mirroring is already setup.
Is it possible for a server to act as a distributor and witness?
Principal Server A is syncing with Partner server B
I would like Principal Server A to replicate some tables to server C.
So this would require me to have a distributor and ideally that distributor to be a remote. Can the remote server also act as a witness?
The roles for Database Mirroring and for Replication are not interdependent. You can have a Witness server be a publisher, distributor or subscriber same as the primary and the mirror. The only exclusion is that the mirror database itself can not be published or subscribed, as it is in a loading state. With Enterprise Edition, you can, however, make snapshots of the mirrored database.
It depends on a few factors. Does the potential distributor have a good enough connection to both the publisher and the subscriber? Introducing a network bottleneck in the replication topology would be bad.
Having a three system topology will also dictate (partially) how you patch SQL Server. Most service packs suggest that you patch the distributor first, then the publisher, and finish up with the subscriber.
The main reason to separate the publisher and the distributor is to separate out the workload that the distributor may cause on the publisher. If the publisher is extra busy, or you are expecting to replicate a lot of transactions, it is best to separate the publisher and the distributor.