I’ve built a system where the backend runs on .NET using ASP.NET framework. My development team includes myself plus a couple of PHP developers handling the frontend work.
One benefit of this setup is that PHP runs faster as a server-side language and uses fewer system resources compared to ASP.NET.
Right now I’m using XML-RPC to connect the frontend and backend layers since both technologies support this protocol. I built the backend XML-RPC implementation myself. However, this approach has some drawbacks. XML-RPC lacks built-in authentication features and the conversion process between object format and XML creates performance bottlenecks during data serialization and deserialization.
Does anyone have experience with similar architectures? Are there better alternatives to XML-RPC for this kind of setup? I’m looking for suggestions that might offer better performance and security features.
hmm interesting setup you got there! have you considered REST APIs instead of xml-rpc? curious what kind of data volumes are you dealing with that’s causing the serialization bottlenecks? also wondering if you’ve benchmarked the actual performance difference or is it more of a gut feeling?
json might be way better option here tbh. way lighter than xml and both php/.net handle it natively. for auth you could add jwt tokens or simple api keys. we switched from soap to json rest apis last year and saw like 40% performance boost, serialization is much faster too.
I faced a similar challenge when maintaining a legacy system with mixed technologies. While JSON-based REST APIs are indeed faster than XML-RPC, you might want to consider gRPC as another alternative. It offers significantly better performance through Protocol Buffers binary serialization and includes built-in authentication mechanisms. The learning curve is steeper, but the performance gains are substantial for high-throughput scenarios. Another approach worth evaluating is implementing a message queue system like RabbitMQ between your layers, which can help decouple the services and improve overall system resilience while maintaining good performance characteristics.