Pardon my ignorance, but I tried reading through the page and could not figure out what this is or does. Can someone point me to a quick summary or overview?
It has a lot of overlaps with other network frameworks such as OkHttp, AFNetworking, cronet, etc., but I think it main contributions are these two components:
Xlog: in memory mmap log for fast logging and also supports encryption. Xlog log enables them to log everything fast and "safely" even in production build to quickly identify bugs.
STN: short and long TCP connection manager, which is optimized for various networks in China.
Plus other network utilities to make development easier.
Depends on what the invokers wants. If the invoker only wants to log things to disk and read those logs later, surely he can do it himself. What XLog provides for the invoker under the hood is essentially performance: the invoker can log lots of things and does not need to worry about IO speed, disk space, and log safety. And of course it's cross platform. A detailed performance analysis is here (in Mandarin Chinese): http://mp.weixin.qq.com/s/cnhuEodJGIbdodh0IxNeXQ
i think it's more about performance. Wechat ha HUGE amount of users in China, an low level socket connection would get better performance than a standard HTTP request
Can you explain what is the definition of cross platform here, I mean in which part of it is "cross-platform"? Is Realm also consider a cross-platform database solution for mobile?
I guess there are two ways to define cross-platform. The obvious one is the software being available for more than one platform, but since that could really be accomplished with two separate implementations, there is also the more generic definition as a piece if software that is build in such a portable way that it can easily be ported to any platform.
Since Realm is available for iOS, Android and Linus from one code base(and open source, so you could port it to other platforms) I would definitely term it as being cross-platform.
I hope this contains the code that makes Wechat connections work so well on the often intermediate/slow/bad connections in China. Because then most companies can learn something from it (looking at Skype, Slack etc here which are horrible with bad connections).
Im surprised no one brings up how bad Slack's infrastructure or backend design is. It's my slowest app from launch to signed in and can see the latest message.
So it's not just me! I have issues with Slack quite regularly, from messages simply not appearing on web (usually iOS works fine) to the app not being able to reconnect without a hard refresh. Add to that the slow 'boot-up' and memory usage and all in all the experience is quite disappointing, especially for such a loved product where good connectivity should be a core requirement.
I think I read somewhere the client is hybrid? That does not explain the very bad connectivity but could explain boot up and memory. I find it quite weird that so many techies adore it to be honest.
The language barrier has been their main issue, they'd definitely would love to collaborate more with teams outside of China I know. They have an astonishing amount of dev resources as well, they wrote an entire cloud platform (they're at maybe 10% of AWS) from scratch, in C.
Few years back Tencent had three internal teams making Wechat, the GuangZhou based Foxmail team won. Wechat IM protocol is basically a modified version of Microsoft Exchange.
It has nothing to do with WeChat. qcloud is developed by TEG (Tech. Engineering Group), and the cloud service for WeChat is developed by WXG (Weixin Group).