Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Celery NextGen: High Level Architecture #27

Merged
merged 31 commits into from
Jan 4, 2021
Merged

Conversation

thedrow
Copy link
Member

@thedrow thedrow commented Jun 1, 2020

Fixes #19.

You can find the preview here.

@thedrow thedrow added this to the Celery 5.0 milestone Jun 1, 2020
glossary.rst Show resolved Hide resolved
@thedrow thedrow self-assigned this Jul 1, 2020
@thedrow thedrow marked this pull request as ready for review July 1, 2020 12:21
@thedrow thedrow requested a review from a team July 1, 2020 12:21
@thedrow
Copy link
Member Author

thedrow commented Jul 1, 2020

This is ready for the first round of reviews.

@auvipy
Copy link
Member

auvipy commented Dec 18, 2020

This is ready for the first round of reviews.

sorry somehow missed the notification

Copy link
Member

@auvipy auvipy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO the CEP is too high level. including some implementation plan/detail would be really helpful. also where kombu and process-based parallelism[multi processing/trio worker process] stands?


Abstract
========
Celery 5 is the next major version of Celery, and so we can break backward compatibility, even in significant ways.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we could change this to a gradual incremental architectural overhaul?

Other runtimes will be considered in different CEPs on a case-by-case basis.

As a general guideline, we will attempt to keep support for the latest Python version :term:`PyPy` supports.
However, if the need arises we will opt to use new Python language features and hope :term:`PyPy` can catch up.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pypy3 now have 3.7 as alpha

Celery now allows connecting to multiple :term:`Message Brokers <Message Broker>`
even if they are of clusters that use different implementations of a message broker.

Users can consume messages from a Redis cluster, a RabbitMQ cluster, and an ActiveMQ cluster if they so desire.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by using AMQP 1.0 client?

We extend the :term:`Result Backend` concept further to allow new use cases such:

- :term:`ETL`.
- :term:`Data Integration`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't apache airflow doing this right?

execution of tasks to ensure we maximize the utilization of all our resources
and to prevent expected errors.

That is why the Controller is now responsible for auto-scaling Celery instances, rate-limiting tasks,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any prototype or dummy API for that or example?


The platform itself can be anything Celery can run on e.g.: Pre-fork, SystemD, OpenRC, Docker, Swarm, Kubernetes, Nomad.

Each implementation of the Platform Manager will be provided in a different package.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any hints on which celery team might rely on officially?

@auvipy auvipy merged commit bad1c9e into master Jan 4, 2021
@auvipy
Copy link
Member

auvipy commented Jan 4, 2021

we need another round of improvement IMHO as celery 6 is the next gen

@thedrow thedrow deleted the high-level-architecture branch January 6, 2021 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants