26

Re: Microservices routing

Hello, scf, you wrote: scf> HTTP/1.1 pipelining (on which you sent the link) not panacea since it fixes the order of obtaining of answers to requests: , missed the mark. A correct reference and the citation: Multiplexing multiple requests over a single TCP connection scf> http/2 java-clients and servers still the crude. It is too new technology that on it to be fastened. grpc, by the way, uses http/2 as the protocol and many complained of various problems with it. I am far from the world , and I should mark,   us a topic about microservices.   and integration at level http contracts scf> Besides, http/2 it is more difficult than different technological stacks and it is necessary to study usage  and storage under loading - http/1.1 can appear more cheaply. Any new technology should be studied and tested. But technology which  will be the standard to study and test much easier than a self-made bicycle.

27

Re: Microservices routing

Hello, itslave, you wrote: a C>> From the pleasant: https://linkerd.io/- allows to write services which are steady against many dynamic , and thus it is perfectly combined with normal direct requests. Plus to it is remarkable system of monitoring. I> even there was a candidate who does not suck. It is fine. He too sucks, but it is a bit less, than alternatives. I> esteemed to dock on . I correctly understand, what  it does not give, delivery - does not guarantee, the sequence of delivery - does not guarantee? No, it not system of messages. It is system for switching of microservices.

28

Re: Microservices routing

Hello, scf, you wrote: a C>> From the pleasant: https://linkerd.io/- allows to write services which are steady against many dynamic , and thus it is perfectly combined with normal direct requests. Plus to it is remarkable system of monitoring. scf> Used? Multiplexing of requests (within the limits of one TCP connections) is able to do some requests? Yes, used. Multiplexing - is not necessary basically, except as for client applications on any mobile phones.

29

Re: Microservices routing

Hello, Cyberax, you wrote: Cs> 2) suck Direct calls of one service of another less, but at any awkward driving it is possible to receive dynamic unstable system. Cs> 3) on messages suck Systems unusually. They should be avoided so, how much generally it is possible. It is possible more detailed substantiations?

30

Re: Microservices routing

Hello, Sharov, you wrote: Cs>> 2) suck Direct calls of one service of another less, but at any awkward driving it is possible to receive dynamic unstable system. Cs>> 3) on messages suck Systems unusually. They should be avoided so, how much generally it is possible. S> it is possible more detailed substantiations? At first, on systems of messages absolutely it is impossible to do protocols of a type a question-answer. Any attempts of the such result in  because of complexity. Secondly, systems of messages can be dynamic unstable. We present that handling demands 3 steps: And, V.Shag And Would add the message in queue of a step which processes them and Would add them in V.Esli's queue for any reasons a step starts to brake, we can receive a row of interesting variants of succession of events. Queue starts to grow beyond all bounds, thus depending on a queue policy new messages can not be processed at all (if FIFO and is ). Thirdly, reliability question - if the message is erraticly remote from queue, it is very difficult to understand that there generally happened. Fourthly, there is a failure template - "the poisoned message". 1. At message handling there is an error and system it puts reversely in queue. Further goto 1. If such messages some tens they easy hammer in the remaining traffic. Well and the system of messages is a uniform point of a failure, not bad such things to minimize.

31

Re: Microservices routing

Hello, Cyberax, you wrote:> He too sucks a C, but it is a bit less, than alternatives. Well as the same people manage to do distributed systems which do not suck, or  a minimum not always suck. One of possible variants as it is possible to them -  work with  and select the specific target decision, instead of declare "all suck, except here this library which is able nothing except as  network calls and shows leagues on ". The C> Is not present, it not system of messages. It is system for switching of microservices. That is its applicability is very strongly restricted, she does not solve variety of problems of communications basically. Clearly.

32

Re: Microservices routing

Hello, Cyberax, you wrote: Cs> Yes, used. Multiplexing - is not necessary basically, except as for client applications on any mobile phones. And boys also do not know that, probably from  to do push multiplexing in the following standard . They too probably suck.

33

Re: Microservices routing

Hello, Cyberax, you wrote: a C> At first, on systems of messages absolutely it is impossible to do protocols of a type a question-answer. Any attempts of the such result in  because of complexity. It is possible and do.  never  , but the applicability range is wide enough. Cs> Secondly, systems of messages can be dynamic unstable. We present that handling demands 3 steps: And, V.Shag And Would add the message in queue of a step which processes them and adds them in queue  a C> If for any reasons the step Starts to brake, we can receive a row of interesting variants of succession of events. Queue starts to grow beyond all bounds, thus depending on a queue policy new messages can not be processed at all (if FIFO and is ). Normal queues  so that they were - dimensionless - not  - guaranteed high SLA on  At such input, the probability of the described scenario is minimum (and all in distributed systems rests against probabilities finally), but allows  loading on  and  logically to decouple  and  (that in addition, allows to do 0-downtime update for ). A C> Thirdly, reliability question - if the message is erraticly remote from queue, it is very difficult to understand that there generally happened. A question exceptional to monitoring and aggregation of dens. Too most can exactly happen by direct calls -  answered response code 500 b figs you will understand that there happened.  in normal queues is retries + deed letter queue that very strongly helps to reduce probability of such scenarios - if a message did not manage to process some times - something there is explicit went not so - the message will not be lost a C> Fourthly, there is a failure template - "the poisoned message". 1. At message handling there is an error and system it puts reversely in queue. Further goto 1. If such messages some tens they easy hammer in the remaining traffic. As I already marked above - retries + dlq treats such variants. Though performance can degrade, if  it is more zero (that not to send message in dlq at the first error). The C> Well and system of messages is a uniform point of a failure, not bad such things to minimize. All rests in SLA. Frequently queues - distributed systems, with SLA above than at suppliers-consumers of this queue.

34

Re: Microservices routing

Hello, itslave, you wrote: Cs>> Yes, used. Multiplexing - is not necessary basically, except as for client applications on any mobile phones. I> and boys also do not know that, probably from  to do push multiplexing in the following standard . They too probably suck. I selected. Still multiplexing makes sense for Web' that at once some requests about resources to send on one channel and to receive at once some answers. It  is not necessary for inter-service communications.

35

Re: Microservices routing

Hello, itslave, you wrote: a C>> At first, on systems of messages absolutely it is impossible to do protocols of a type a question-answer. Any attempts of the such result in  because of complexity. I> it is possible and do.  never  , but the applicability range is wide enough. I saw even implementations of analogs TCP on messages, with flow control and other. It does not mean that it is good idea. While I for myself found two normal applications of queues: 1) Raskidyvanie of calculations or long asynchronous tasks on a computing cluster. 2) simple best effort fire-and-forget  for external systems with notification messages about changes. The C>> If for any reasons a step Would start to brake, we can receive a row of interesting variants of succession of events. Queue starts to grow beyond all bounds, thus depending on a queue policy new messages can not be processed at all (if FIFO and is ). I> Normal queues  so that they were I> - dimensionless I> - not  I> - guaranteed high SLA on  Read that I wrote. Queue, and the output agent because of what depth of queue starts to grow breaks not. Thus the system of messages can perfectly work. And then especially ridiculously happens, if messages in the heart of queue cannot be processed because of that any more that the objects connected to them ceased to be actual. I> at such input, the probability of the described scenario is minimum (and all in distributed systems rests against probabilities finally), but allows  loading on  and  logically to decouple  and  (that in addition, allows to do 0-downtime update for ). It still becomes and without systems of messages is better. And on a word "decoupling" I now generally at once beat in a physiognomy. C>> Thirdly, reliability question - if the message is erraticly remote from queue, it is very difficult to understand that there generally happened. I> a question exceptional to monitoring and aggregation of dens. At me their terabyte at an o'clock on some systems. But speech not about it, a problem that if the message is remote in many systems on messages  not clearly in what state became is system. Whether the task connected to the message has been made? The C>> Fourthly, appears a failure template - "the poisoned message". 1. At message handling there is an error and system it puts reversely in queue. Further goto 1. If such messages some tens they easy hammer in the remaining traffic. I> as I already marked above - retries + dlq treats such variants. Though performance can degrade, if  it is more zero (that not to send message in dlq at the first error). Besides, read that I wrote. There is a poisoned message which causes an error at handling (well here a bug in the code of the output agent). As this message does not prove to be true, queue very obligingly does to it retry, again completed by an error. If retry' it is a lot of, the poisoned messages force out all remaining, even if speed of their arrival the insignificant. DLQ here generally  unless only for  after all breaks. The C>> Well and system of messages is a uniform point of a failure, not bad such things to minimize. I> all rests in SLA. Frequently queues - distributed systems, with SLA above than at suppliers-consumers of this queue. Oh, well it is not necessary. Vendors can give SLA in 146 %, only after all all the same all falls.

36

Re: Microservices routing

Hello, itslave, you wrote:>> He too sucks a C, but it is a bit less, than alternatives. I> well as the same people manage to do distributed systems which do not suck, or  a minimum not always suck. And do - minimize exterior dependences, do all as it is possible is easier, think over dynamic behavior under loading, reduce possible blast radius at a failure of components, etc. , variants:" And let's take Tibco/Oracle/ZMQ, at which  SUCH!!! SLA ", - come to an end normally with a dip. If that, my code works in system which services 2 million (5 million in peak) requests in a second. Other I (on 100 %) system services only" 20000 requests in a second. I> one of possible variants as it is possible to them -  work with  and select the specific target decision, instead of declare "all suck, except here this library which is able nothing except as  network calls and shows leagues on ". Some things are almost invariable, without dependence from requirements. The C>> Is not present, it not system of messages. It is system for switching of microservices. I> that is its applicability is very strongly restricted, she does not solve variety of problems of communications basically. Clearly. That she does not solve that - it is not necessary ().

37

Re: Microservices routing

Hello, Cyberax, you wrote:> I selected a C. Still multiplexing makes sense for Web' that at once some requests about resources to send on one channel and to receive at once some answers.  not  for mobile phones, but also for ordinary a web . , with it perhaps I will agree and I will not go deep into details. A C> it  is not necessary For inter-service communications. Again , looking what data there are transferred. In most cases - it is not necessary, and if it is (almost continuous flow of the small data with critical time of handling (for example stock quotes) replicating (in this or that type) here more than is necessary.

38

Re: Microservices routing

Hello, Cyberax, you wrote: the C> While I for itself found two normal applications of queues: a C> 1) Raskidyvanie of calculations or long asynchronous tasks on a computing cluster. A C> 2) Simple best effort fire-and-forget  for external systems with notification messages about changes. Well I still will throw with a couple: -  peak loading - integration of heterogeneous systems - support high availability + guaranteed delivery But it is far not the complete list, I assure you a C> Read that I wrote. Queue, and the output agent because of what depth of queue starts to grow breaks not. Thus the system of messages can perfectly work. And then especially ridiculously happens, if messages in the heart of queue cannot be processed because of that any more that the objects connected to them ceased to be actual. Let breaks, it is necessary to do normal monitoring,   and  about . And if to this all to fasten   in this or that type to "lose" history under the saved messages after a fix  - trifling matter. The C> It still becomes and without systems of messages is better. And on a word "decoupling" I now generally at once beat in a physiognomy. If selected it is simple a figure of speech the Internet of the fighter, for God's sake. In real it is the guaranteed way to physical inability. Also that the most interesting - I basically two hands support your message not to build distributed systems while at all , but expressions with which you it inform, sharpness as at aerated water and categoricalness   - a kindergarten. A C> At me their terabyte at an o'clock on some systems. But speech not about it, a problem that if the message is remote in many systems on messages  not clearly in what state became is system. Whether the task connected to the message has been made? Correlation id and search in broad gulls. 2 minutes of business on such , under condition of usage normal a broad gull . A C> Besides, read that I wrote. There is a poisoned message which causes an error at handling (well here a bug in the code of the output agent). As this message does not prove to be true, queue very obligingly does to it retry, again completed by an error. The C> If retry' is a lot of, the poisoned messages force out all remaining, even if speed of their arrival the insignificant. Here all strongly depends on a context. Nobody hinders to adjust number  = 0, and , all messages are processed once. And still messages have a magic property visibility timeout which can   on a half-hour. As you see is floppy enough it is possible  and to set up under business a case. A C> DLQ here generally  unless only for  after all breaks. And so too dlq it is possible to use. A C> Oh, well it is not necessary. Vendors can give SLA in 146 %, only after all all the same all falls. Well and let falls. The main thing in the contract penal sanctions correctly to register. Then you look also the vendor reflects, in what to it falling quits also what that measures undertakes.

39

Re: Microservices routing

Hello, Cyberax, you wrote: a C> , variants:" And let's take Tibco/Oracle/ZMQ, at which  SUCH!!! SLA ", - come to an end normally with a dip.  prompts that time tibco/oracle/biztalk/zmq - commercially successful projects throughout many years your statement is incorrect. The C> If that, my code works in system which services 2 million (5 million in peak) requests in a second. Other I (on 100 %) system services only" 20000 requests in a second. Went . With horizontal scaling after 5  the amount of requests has no value. Well also give I will mark that at me fresh business a case - to process sudden  filling + - 10 million pictures in  a format on S3 and  from them video, beforehand transforming and it becomes in some hours on one cheap . Optimization variants on orders - shaft, but it is not necessary because this productivity arranges business. I>> One of possible variants as it is possible to them -  work with  and select the specific target decision, instead of declare "all suck, except here this library which is able nothing except as  network calls and shows leagues on ". Cs> Some things are almost invariable, without dependence from requirements. All your posts simply shout about yours (probably deep, but narrow experience. You adjust all tasks to the templates and proceeding from them try to solve categorically and categorically. So from. It is silly. The world is much more diversiform also not all are necessary . If you plunged, for example, in typical  that would be terrified from a zoo of the services developed on decades, the isolated commands with the bad engineering culture,  horror. There the field is banal it is impossible to add in xml without 125 coordination. To me as time access to a test server half a year opened that. Here ESB very strongly helps from an organizational point. Is still IoT where it is necessary to buffer the big flow of input messages and losses individual . There is simply necessity of frequent releases and it try  microservices... In general tasks happen absolutely different, and a silver bullet till now did not invent.  I on your place would not state so categorically about "almost invariable things" a C> That that she does not solve - it is not necessary (). As I already marked above, the narrowness of your vision of the world does not allow you to estimate adequately both a variety of tasks, and methods of their decision.

40

Re: Microservices routing

Hello, itslave, you wrote: a C>> 2) Simple best effort fire-and-forget  for external systems with notification messages about changes. I> well I still will throw with a couple: I> -  peak loading very bad idea. Peak loading should or be processed at once, or to throw errors to causing system that it was decelerated and did not create such loading. I> - integration of heterogeneous systems I> - support high availability + guaranteed delivery is even worse. I> but it is far not the complete list, I assure you Well so bad ideas generally much. I> let breaks, it is necessary to do normal monitoring,   and  about . And if to this all to fasten   in this or that type to "lose" history under the saved messages after a fix  - trifling matter. And how monitoring allows copes backlog' messages which also will grow during diagnostics of causes of error? Especially, if the system is constructed on the guaranteed delivery. A C>> At me their terabyte at an o'clock on some systems. But speech not about it, a problem that if the message is remote in many systems on messages  not clearly in what state became is system. Whether the task connected to the message has been made? I> Correlation id and search in broad gulls. 2 minutes of business on such , under condition of usage normal a broad gull . A problem that if messages cause change something, at the pass of one message a not so clearly total state. The C>> If retry' is a lot of, the poisoned messages force out all remaining, even if speed of their arrival the insignificant. I> here all strongly depends on a context. Nobody hinders to adjust number  = 0, and , all messages are processed once. And still messages have a magic property visibility timeout which can   on a half-hour. Both variants conduct to other problems. Absence retry does handling best-effort'om at the best.  causes a delayed action mine, allowing the poisoned messages to collect gradually and then at once all to kill. I> as you see is floppy enough it is possible  and to set up under business a case. They do not solve the main problem - absence "backpressure". The side sending message does not know that backend can right now is dying and what not bad to start to do throttling incoming requests. By the way, this problem can just dare restriction of the maximum depth of queue. A C>> Oh, well it is not necessary. Vendors can give SLA in 146 %, only after all all the same all falls. I> well and let falls. The main thing in the contract penal sanctions correctly to register. Then you look also the vendor reflects, in what to it falling quits also what that measures undertakes. Vendors to themselves not enemies, and any serious consequences for them do not follow.

41

Re: Microservices routing

Hello, itslave, you wrote: a C>> it  is not necessary For inter-service communications. I> Again , looking what data there are transferred. In most cases - it is not necessary, and if it (almost) a continuous flow of the small data with critical time of handling (for example stock quotes) replicating (in this or that type) here more than is necessary. Well so open two channels, what problems? What for it to push in the protocol?

42

Re: Microservices routing

Hello, itslave, you wrote: a C>> , variants:" And let's take Tibco/Oracle/ZMQ, at which  SUCH!!! SLA ", - come to an end normally with a dip. I> Kep prompts that time tibco/oracle/biztalk/zmq - commercially successful projects throughout many years your statement is incorrect. . Thanks to feats  and ynterprajz-orhitektov. Cs>> Some things are almost invariable, without dependence from requirements. I> all your posts simply shout about your (probably deep, but narrow experience. You adjust all tasks to the templates and proceeding from them try to solve categorically and categorically. So from. It is silly. The world is much more diversiform also not all are necessary . At me wide enough experience, and never I yet did not see normal system on messages. But saw time and again as after radical surgery difficult systems with everyones workflow and  turned to normal and simple systems. I> If you plunged, for example, in typical  that would be terrified from a zoo of the services developed on decades, the isolated commands with the bad engineering culture,  horror. There the field is banal it is impossible to add in xml without 125 coordination. To me as time access to a test server half a year opened that. Here ESB very strongly helps from an organizational point. I partially in such surrounding work. I> is still IoT where it is necessary to buffer the big flow of input messages and losses individual . I> There is simply necessity of frequent releases and it try  microservices... Oh, IoT... Was specific in IoT messages are used as I told - for  an external system which then makes the synchronous update query of a fortune. And some generally store the is eternal-opened TCP-channel through which both sides can communicate direct calls. I> in general tasks happen absolutely different, and a silver bullet till now did not invent.  I on your place would not state so categorically about "almost invariable things" But there are very bad patterns which lead as a result to problems.

43

Re: Microservices routing

Hello, Cyberax, you wrote: a C> Hello, itslave, you wrote: a C> very bad idea. Peak loading should or be processed at once, or to throw errors to causing system that it was decelerated and did not create such loading. Well again, from what so? Well here more than the typical scenario in the same : there was a peak loading, increased kol-in messages in queue,   is adjusted on it reacts, starts to launch additional machines. But  all - time calculated by minutes (and even tens minutes in a case with Windows and  ). But nevertheless machines , queue is raked after a while. The C> is even worse. The C> Well so generally is a lot of bad ideas. Well time you told - then indeed Give we assign to this citation number 2:45 the gospel from  a C> And how monitoring allows copes backlog' messages which also will grow during diagnostics of causes of error? Especially, if the system is constructed on the guaranteed delivery. Monitoring notifies whom it is necessary. For example the administrator or there system   which starts to tear  in other region. A C> the Problem that if messages cause change something, at the pass of one message a not so clearly total state. About   I wrote above. Cs> conduct Both variants to other problems. Absence retry does handling best-effort'om at the best.  causes a delayed action mine, allowing the poisoned messages to collect gradually and then at once all to kill. Again , all depends on the scenario and from context business. A C> They do not solve the main problem - absence "backpressure". The side sending message does not know that backend can right now is dying and what not bad to start to do throttling incoming requests. Here is how time queue also does this   about what I wrote above a C> Vendors to myself not enemies, and no serious consequences for them follow. Well, . And the competition in the market of queues is not present generally

44

Re: Microservices routing

Hello, Cyberax, you wrote: a C> Well so open two channels, what problems? What for it to push in the protocol? Not to build bicycles for maintenance of open channels opened, with the registration , breakaways of connections, operating system restriction on kol-in open channels and so on.

45

Re: Microservices routing

Hello, Cyberax, you wrote: a C> Ugu. Thanks to feats  and ynterprajz-orhitektov. Well, . Time you told - means so it and is. The gospel from , 2:46 a C> At me wide enough experience, and never I yet did not see normal system on messages. But saw time and again as after radical surgery difficult systems with everyones workflow and  turned to normal and simple systems. If you did not see,  means that you of that that did not see... And all. On the other hand, I will agree with that that distributed systems  where it is necessary and where it is not necessary, the law  only aggravates all and frequently it conducts to a madhouse. And failing of programmers correctly to build such systems which is visible even on questions in this topic - a control shot in a head. But far not everyone  can be taken and simplified"simply. And the correct decisions constructed on queues-ESB in a huge row of cases allow to construct controlled system with demanded  characteristics. The C> But is very bad patterns which lead as a result to problems. There are no the bad patterns. There are patterns approaching to the decision of the given specific target and improper. As soon as it you will understand, it is possible to move further to understanding NFR/QA/ASR.

46

Re: Microservices routing

Hello, itslave, you wrote: a C>> very bad idea. Peak loading should or be processed at once, or to throw errors to causing system that it was decelerated and did not create such loading. I> well again, from what so? Well here more than the typical scenario in the same : there was a peak loading, increased kol-in messages in queue,   is adjusted on it reacts, starts to launch additional machines. But here happens  - in VPC the free addresses and machines came to an end die right after start. Or in ASG at Amazaona something broke. Well also can be and simply there is no the free capacity and ASG throws out Insufficient Capacity Error. Existing machines are not capable to cope with a flow of requests, and frontend continues them to send. Lag backend' continues to rise. Clients frontend' panic, repeating operations even more often. Lag rises. Any client frontend' cannot soon receive results in time while backend processes already certainly unnecessary messages. All. How to do correctly? Very simply: to have a small operative store in capacity and to do handling so that at increase of loading handling time smoothly grew. At loading excess - actively to do load shedding, producing clients frontend' errors. The C>> Well so generally is a lot of bad ideas. I> well time you told - then indeed I> Give we assign to this citation number I> 2:45 the gospel from  Aha. The C>> And how monitoring allows copes backlog' messages which also will grow during diagnostics of causes of error? Especially, if the system is constructed on the guaranteed delivery. I> monitoring notifies whom it is necessary. For example the administrator or there system   which starts to tear  in other region. , certainly. Both still databases migrate and generally all is written so that can work through WAN. Cs>> conduct Both variants to other problems. Absence retry does handling best-effort'om at the best.  causes a delayed action mine, allowing the poisoned messages to collect gradually and then at once all to kill. I> again , all depends on the scenario and from context business. Well that is, the problem does not dare normally. A C>> They do not solve the main problem - absence "backpressure". The side sending message does not know that backend can right now is dying and what not bad to start to do throttling incoming requests. I> here is how time queue also does this   about what I wrote above What queue can do throttling the sending side? It is impossible to do it in SQS or ApacheMQ. Cs>> Vendors to themselves not enemies, and any serious consequences for them do not follow. I> well, . And the competition in the market of queues is not present generally Approximately indeed.

47

Re: Microservices routing

Hello, itslave, you wrote: a C>> Well so open two channels, what problems? What for it to push in the protocol? I> not to build bicycles for maintenance of open channels opened, with the registration , breakaways of connections, operating system restriction on kol-in open channels and so on. Therefore it is much better  multiplexing manually, suffering from head of line blocking and other . Aha.

48

Re: Microservices routing

Hello, Cyberax, you wrote: the C> Therefore is much better  multiplexing manually, suffering from head of line blocking and other . Aha. You generally read my posts, here it is simply interesting. I where wrote that about what is necessary   manually? The citation does not complicate to result?

49

Re: Microservices routing

Hello, Cyberax, you wrote: the C> But here happens  - in VPC the free addresses and machines came to an end die right after start. Or in ASG at Amazaona something broke. Well also can be and simply there is no the free capacity and ASG throws out Insufficient Capacity Error. Aha. And the atomic bomb fell to a data-center. And it is necessary to do all decisions taking into account these improbable events. Cs> Existing machines are not capable to cope with a flow of requests, and frontend continues them to send. Lag backend' continues to rise. Clients frontend' panic, repeating operations even more often. Lag rises. Any client frontend' cannot soon receive results in time while backend processes already certainly unnecessary messages. Circuit breaker it is possible  on a miscellaneous. A C> How to do correctly? Very simply: to have a small operative store in capacity and to do handling so that at increase of loading handling time smoothly grew. At loading excess - actively to do load shedding, producing clients frontend' errors. It not  the possible approach. To identify that  not  and to begin  clients it is possible  methods, the choice  depends on specific requirements. The C> Well that is, a problem does not dare normally. Once again. The unique criterion of normality of a solution of a problem is   specifications. All. A point.> What queue can do a C throttling the sending side? It is impossible to do it in SQS or ApacheMQ. Instead of it is necessary to do it in the approach offered by me. A C> Approximately indeed. No questions any more I have

50

Re: Microservices routing

Hello, itslave, you wrote: the C>> Therefore is much better  multiplexing manually, suffering from head of line blocking and other . Aha. I> you generally read my posts, here it is simply interesting. I where wrote that about what is necessary   manually? The citation does not complicate to result? Well not manually, and on the basis of the protocol of system of messages, without a difference. That it worked as reliably as system stack TCP, to be necessary to write analog of system stack TCP.