Design considerations and tradeoffs

When building applications that involve concurrency, we must decide what grain of objects to make available and how to identify those objects with sensible URIs. With larger objects, we can easily achieve ACID properties. However, we may also be uploading and downloading too much data for our application's use cases. In some cases, we'll need to provide alternative levels of access: large objects to support ACID properties, and small objects to allow rapid response when a client application wants a subset of the data.

To implement more localized processing, we can leverage the multiprocessing module. This is focused more on building high-performance processing pipelines within a trusted host or network of hosts.

In some cases, the two design patterns are combined such that a RESTful request is handled by a multiprocessing pipeline. A conventional web server (such as NGINX) working through uWSGI will use multiprocessing techniques to pass the request through a named pipe from the frontend to the uWSGI-compliant Python application backend.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset