Partitioning enables logical separation of data.
OpenCV is the most mature computer vision library in the world. Xcode is the best IDE on macOS. OpenCV is written in C++ and various bindings (first- and third-party) exist for most popular language. I prefer to work in C++. Although Xcode has excellent support for C++ projects, getting it to play nicely with OpenCV is rather tricky.
Simple Object Access Protocol (SOAP) is a RPC-style web service protocol.
With GitHub Actions one can build end-to-end continuous integration (CI) and continuous deployment (CD) capabilities.
API Gateway is a fully managed service to create, publish, maintain, monitor and secure APIs. Lambda is a function-as-a-service product. The two can be combined to create serverless, cost-efficient and infinitely scalable APIs.
Kubernetes is a software system that allows one to easily deploy and manage containerised application on top of it. Its aim is to provide best possible utilisation of your hardware (metal and virtual) resources while still maintaining complete isolation of hosted applications.
Docker is a platform for packaging, distributing and running applications. It allows you to package your application together with its whole environment.
When an application comprises a handful of large components only, it's completely acceptable to give a dedicated virtual machine (VM) to each component and isolate their environments by giving each their own operating system instance.
Monolithic applications consist of components that are all tightly coupled together and have to be developed, deployed and managed as one entity. Running a monolith typically requires a small number of powerful servers that can provide enough resources for running the application.
Algorithms are instructions on how to perform a task. Not all algorithms are created equal. Some are fast, some are excruciatingly slow. Most algorithms are affected by the size of the input (typically denoted by n). The first step to improve code performance is to measure it.