Existing options for high-throughput routing software?

I’m sitting on a large service (think ~20k transactions per second in our highest volume instance) which is in the process of being gutted and microservice-ified. However, there are a few pieces of functionality that need to remain in one place (at a minimum, a shared endpoint; at maximum authn/authz/logging/metrics emitting/etc).

Before running off and building my own ghetto API gateway-esque solution to this, are there any existing solutions that I should look at? Apache Camel seems promising, for instance. Due to the scale and the limited requirements (rules based routing), a full-fledged ESB is probably not the right call. But I’m open to pretty much anything else and while the team has a Java bias, I’ll try to be language agnostic here.

If this isn’t the best place to ask such a question (it’d be frowned upon at SO, I know), please don’t hesitate to point me in a better direction.

Converting an entity with existing contents to revisionable throws exception

I’m trying to convert a core entity (menu_link_content) to revisionable with existing data. I’m trying to figure out how to accomplish this. I saw this go to guide here – https://www.drupal.org/docs/8/api/entity-api/converting-a-content-entity-type-to-be-revisionable-and-publishable

I have a D8.6 site and I’m trying to make the menu_link_content revisionable. On top of that my site has existing content for custom menus. And I cannot just delete these contents. So these has to be ideally migrated to the new revision tables thats created. When I followed the step by step approach in that guide ‘Section 2’ I get the exception –

“Drupal\Core\Entity\EntityStorageException: The SQL storage cannot change the schema for an existing entity type (menu_link_content) with data. in Drupal\Core\Entity\Sql\SqlContentEntityStorageSchema->onEntityTypeUpdate() (line 347 of /var/www/myproj/docroot/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorageSchema.php).”

When I delete all the custom menu links content it works.

Please confirm if my understanding is correct in the Section 2 –

“If you are updating the code for an existing site and your entity type already contains some data, you will also need to provide an upgrade path in addition to the changes explained in part 1. The upgrade path is composed of two things “

  • This means before performing the section 2 steps we have to make sure the Section 1 is done. This includes changing the Entity file annotations and setting fields to revisionable etc.

After this step I added the new revision fields like logs, created, time etc to install file and then created a post_update file and specified the fields which revision is set to true in that array.

Any suggestions or examples are welcome. Thanks!