What is the ActorSystem used for in Akka HTTP Http() constructor?

The Http() constructor to bind a route to an IP and port (in effect, create a server) takes in a typed ActorSystem as an implicit parameter. Can I get an idea of what this actor system is used for?

Specifically, in the context of my application, I have an actor system used to spawn actors and do things, so it has a specific Behavior. I am wondering if I can use it safely in the Http() constructor, or do I have to create a separate system for that? The docs use Behaviors.empty, is that required?

Http() or desugared Http.apply() is not a constructor but a way to access an Akka Extension - a component that exists in a single instance per actor system instance and whose lifecycle is tied to the ActorSystem.

The Akka HTTP extension uses the ActorSystem to pick up config and run the Akka Streams and actors that underpin Akka HTTP.

Are you already on Akka HTTP 10.2.0? If yes, then it should pick up either a classic ActorSystem or a typed one (regardless of which type it is, Behavior.empty is fine).

If you are still on Akka HTTP 10.1.x, you will have to use a classic ActorSystem which you can get from the typed ActorSystem depending on the Akka version you are on. On more recent Akka versions you would use system.classicSystem to access the underlying classic system and pass that to Http().