Title: Software Architecture with C++
Description: This book is a comprehensive guide for intermediate to advanced C++ developers and software engineers who want to transition from writing code to designing and architecting large-scale, robust, and maintainable software systems.

The second edition is a continuation of the successful book of Piotr Gaczkowski and Adrian Ostrowski, which has become so popular that it is often included in lists of recommended books on C++. Thus, the first edition was translated into Polish and Chinese.

This book covers both theoretical aspects of software architecture and practical topics related to the features of C++, design patterns and C++ idioms, building and packaging programs written in C++ using CMake, package managers such as Conan and CPM.cmake, C++ modules and modularity in general. It also covers aspects of testing, benchmarking, continuous integration and continuous deployment, code security, performance and profiling, sandboxing (WebAssembly with Cheerp and a little about speeding up bytecode interpreters such as CPython), etc.

https://cheerp.io/ How C++ engineers build web applications. "Cheerp is an enterprise-grade compiler toolchain that can compile C/C++ into efficient WebAssembly and JavaScript."

Lastly, this book examines the architecture of distributed systems, interservice communication and network protocols (e.g., Restful, GraphQL, gRPC, Thrift, ZeroMQ, MQTT, RabbitMQ, Kafka), including IoT, Linux containers, container images and container security. It describes the principles of containerization of Linux applications, Docker and Kubernetes, as well as, of course, microservices and telemetry tools such as OpenTelemetry to observe the services in real-time. That includes documentation, OpenAPI and SwaggerUI.

The final chapter details how to implement OpenTelemetry logs, traces, and metrics in a C++ program, which is also used in IoT.

Much of this is supplemented with practical examples. Moreover, there are instructions for Linux, macOS and Windows.
Subjects: C plus plus (computer program language), System design, Computer engineering