On of the reason of the appearance of money that it improved the exchange of goods and services : See Wikipedia . However with the appearance of the internet and online trading it can be imagined that the direct barter is effective enough to realize and effective exchange without using money.
So let we say I can provide a certain service portfolio that I want to exchange, like as I am originally a software developer I can provide the following set of services SOFFER = { SDEVELOP_DOTNET, SDEVELOP_C#, SDEVELOP_JAVASCRIPT }. On the other hand I need a certain service portfolio practically to survive, like I need meat each day, water, electricity : SREQUIRE = { SMEAT, SWATER, SELECTRICITY }. So let we say each actor on the world has got a certain set or certain portfolio of services to offer and a certain portfolio of services to require. With the help of internet and online exchange it is pretty fast to find someone that needs the same portfolio that we provide and has got the same portfolio that we need. However it is absolutely not sure that such a direct match exist. As a consequence a direct barter network would have at least the following two challenges :
1. Considering a certain network of actors who can provide and requires certain service portfolios how is it possibly to have a "best match", meaning that finding the actors that provides the services that I need and vica versa finding the set of actors that need the services that I provide. The simple "Best Match" probably require further complex graph theoretical investigation, although there is a little bit questionable if there can be defined a "Match" if I provide my services to multiply actors and I get the services from multiply actors as well.
2. Trust issue : how it is possible to guarantee that all actors can be trusted, meaning that the negotiated services are really delivered.