Eventlet Removal Logo
Eventlet Removal

Frequently Asked Questions

Is this migration initiative an official initiative?

Yes. This initiative is supported by the OpenStack community. This initiative found its roots in an OpenStack community goal.

What will happen to eventlet once the openstack migration is complete?

Eventlet will be simply abandoned officially. No more maintenance will be given to the official Eventlet repository. The official Eventlet repository will be archived.

Why not simply maintaining Eventlet?

We have many reasons for that:

  • The main reason is that, since years, to keep running, Eventlet started to fork deprecated old CPython stdlib modules that are now removed from CPython. With coming versions of Python this kind of workaround will surely have to repeat. This trend seems already coming with Python 3.13 and the threading module (see the discussion: GitHub comment). We do not want to transform Eventlet into a poorly maintained fork of CPython. A poor full of security breaches. Moving away of that trend would almost require a complete rewrite of Eventlet.
  • The second reason is more about resources. Eventlet is maintained by 1 or 2 part time core maintainers, that's not enough to keep its head above water, especially if we take account of the previous reason. We do not want to repeat the log4shell story.
  • The third reason is sustainability. When the migration will be done, even if the migration was difficult, your projects will be safe for next decades. We want to encourage a sustainable solution.

Should I choose AsyncIO or Threading to replace Eventlet?

The choice depends on your use case and system architecture:

  • AsyncIO is generally recommended for new development and I/O-intensive applications. It offers better performance for handling many simultaneous connections, but requires more significant code refactoring.
  • Threading may be easier to implement if your current code already heavily uses Eventlet's thread patterns. It's often a more accessible transition step, especially for complex existing applications.

In all cases, we recommend analyzing your code and specific needs before making a choice. Check our dedicated guides for AsyncIO and Threading.

How do I manage the transition period when some parts of the code are still using Eventlet?

Progressive migration is often unavoidable in large projects. Here are some strategies:

  • Isolate components using Eventlet in separate modules with clearly defined interfaces.
  • Use adapters or wrappers to enable communication between migrated code and code still using Eventlet.
  • Prioritize migrating the least interdependent components to reduce complexity.
  • Implement robust integration tests to verify that both paradigms work correctly together.

How can I estimate the difficulty and time needed for migration?

The migration effort varies considerably depending on:

  • The size of your codebase and the depth of Eventlet usage.
  • The number of external dependencies that also use Eventlet.
  • The use of global monkey patching vs. specific Eventlet features.

We recommend:

  • Starting with an impact analysis to identify all Eventlet usage points.
  • Conducting a pilot project on a less critical component to assess specific challenges.
  • Planning the migration in phases, starting with the most accessible layers.

How can I effectively test after migration?

Post-migration validation is critical to ensure stability:

  • Use load and concurrency tests to verify that performance remains acceptable.
  • Implement specific tests for timeout scenarios and error handling.
  • Ensure you test asynchronous behaviors under real conditions.
  • Carefully monitor performance metrics and logs during initial deployment.

Are there OpenStack projects that have already successfully completed this migration?

Yes, several OpenStack projects have already undertaken or completed this migration:

  • Neutron has started its migration several months ago and its state is now well advanced.
  • Octavia completely removed its dependency on Eventlet since 2017.
  • Mistral has completed most of its migration.

These projects offer concrete examples and lessons learned that can be valuable for your own migration.