Cosmin Poieana
Sr. Software Engineer seasoned with business and leadership skills. Passionate about startups, photography, videography, art, reading and traveling the world.
A few slides about various problems and potential solutions requiring distributed calculus. Approaches using multithreading, multiprocessing, parallel workers. Basic concepts like: concurrency, parallelism, asynchronous.
Basic approaches in web development using Python. WSGI-based frameworks and REST APIs. Basic services processing data streams, assuring pipelines and DB consistency.
Distribute tasks with dramatiq having configurable brokers and backends. Requirements, flexibility and performance gains.
What is async programming. Generic concepts. How it's done using Python, what's a co-routine, the event loop etc. Keywords and useful 3rd-party libraries.
Is this the right choice for me? What are the advantages? Pro-cons on different use-cases. How to convert sync code into async. Tricks!
ASGI paradigm. Playing around with Bocadillo (based on Starlette) and uvicorn. Convert the previous API example into async code. Observe performance gains, debugging advantages, de-cluttering and getting rid of locks.
Async task queues, like arq which is based on Redis. Integration with other services, maybe some extra monitoring and retrying mechanisms.
Optional: moving from development into cloud-based production. Example for Google Cloud. Service refactoring.
What else can you use or transform with microservicing in mind. Examples of other approaches, pro/cons. Is this complex async world for me? How should I overcome challenges?
Feel free to explore the same concepts in other languages as well (some of them having a more native or seamless approach). What to read next?
cmin764
Github
Gmail
By Cosmin Poieana
A better approach on asynchronously dealing with IO-bounded routines.
Sr. Software Engineer seasoned with business and leadership skills. Passionate about startups, photography, videography, art, reading and traveling the world.