Using Aurelius Eventhandler in XData context

After recreating my last project (our last dialog)

In my XData service I want use Aurelius Event Handler
TMappingExplorer.Get( sys.ModelName).Events.OnInserting.Subscribe( OnInserting);
This is now global and only once.

But that's not thread safe, is it?

Do I have to use synchronize there in the procedure to keep it thread safe?
Or do I have to do it completely differently?

I use the database Aurelius database function on a request in XData

For example: (adding Date and Username on every insert)

procedure TdmDatabase.OnInserting( Args: TInsertingArgs);
  if Args.Entity is TsngEntity then
    with Args.Entity as TsngEntity do begin
      sngCreate     := now;
      sngCreateUser := sys.CurrentUser;  // here, I take a value from a global object

The "CurrentUser" must set within the thread. So, that was one reason to take an own ObjManager.

Can I use TXDataOperationContext.Current. within the OnInserting event?

Edit: But that's not entirely okay either. I have functions who store data from HTTP-User and functions that store data as constant User (SYSTEM)

Yes, it must be thread-safe. Yes, TXDataOperationContext.Current can be used from OnInserting event.