Migrate plugin migration_lookup : dynamic migration id
As @Hudri suggested, I've created my own process plugin (extending MigrationLookup plugin):
my_module/src/Plugin/migrate/process/CustomMigrationLookup.php

namespace Drupal\my_module\Plugin\migrate\process;

use Drupal\migrate\Plugin\migrate\process\MigrationLookup;
use Drupal\migrate\MigrateExecutableInterface;
use Drupal\migrate\Row;

/**
 * @MigrateProcessPlugin(
 *   id = &quot;custom_migration_lookup&quot;
 * )
 */
class CustomMigrationLookup extends MigrationLookup {
  
  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
    // We set the migration id based on the field configured in &quot;migration_id_source&quot;
    $this-&gt;configuration['migration'] = $row-&gt;getDestinationProperty($this-&gt;configuration['migration_id_source']);
    // We continue with the standard migration_lookup process
    return parent::transform($value, $migrate_executable, $row, $destination_property);
  }

}


The migration config :
process:
  pseudo_field_migration_id:
    plugin: static_map
    map:
      content_a: node_a_migration
      content_b: node_b_migration
    source: entity_type
  field_entity_reference:
    plugin: custom_migration_lookup
    migration_id_source: 'pseudo_field_migration_id'
    source: entity_id