Another nice reply received:
I have a few comments.
...
You don't need pointers. You're asking a system architect to work for free.
The first thing you need to do is get a copy of this book
https://www.theminimumyouneedtoknow.com/soa_book.html
Actually read it Don't try to wing it by skimming a few lines of source code. ... You need to understand the concepts in that book. One of the huge concepts you need to understand is throttling or more correctly, throttle control. Your drawing has given zero consideration to that and it is the first thing your design needs to have. You generally can't bolt it on at the end. Just because you don't think anyone will hit it with 10,000 requests per second doesn't mean that won't happen.
The book I pointed you to ... covers creating services on a host (OpenVMS) using ACMS (Application Control Management System). There are Linux type things like Tuxedo (not quite as good) and probably some free stuff by now. What you need to learn from the book is how to design and create restartable units of work. That's a completely foreign concept for people who only develop on x86 and less architectures. It's most of your week every week when you work on big systems.
The PC mentality is:
Open connection - keep connection open while device is operating for minutes/hours/days - report back on same connection status - report back final completion - close connection.
When connection is lost mid-operation the device is left in a FUBAR state. The PC mentality doesn't have any clean-up/reset capability. Only the "happy path" is ever designed for.
The big system mentality is:
Assume failure and design around it from the start
Open connection - submit request for device to do something - receive unique id/method to monitor from - disconnect
At this point it depends on how far your design needs to go. If it needs to be expandable to possibly work on the Web, your front end needs to establish itself with some kind of publish-subscribe service and wait for a push.
Local network only type solutions are easier and more forgiving. Some will use a mailbox type service (don't think email there, because it is not). Some will launch their own local service sitting on a specific IP port that will accept one or a very limited number of messages OF FIXED LENGTH AND SPECIFIC FORMAT. Whatever connects will be required to use the previous unique ID that was received. Service dies off after some period of time without receiving answer.
The road to Hell is paved with JSON and XML.
Never assume a connection can be maintained or that you can transfer as much data as you want during that connection.
Never tie-up a resource you don't need to tie-up.
Throwing hardware at it isn't solving an algorithm problem.