When to use which subtype?
Use HttpEntityStrict if the amount of data is "small" and already available in memory (e.g. as a String or ByteString)
Use HttpEntityDefault if the data is generated by a streaming data source and the size of the data is known
Use HttpEntityChunked for an entity of unknown length
Use HttpEntityCloseDelimited for a response as a legacy alternative to HttpEntityChunked if the client doesn't support chunked transfer encoding. Otherwise use HttpEntityChunked!
In a Multipart.Bodypart use HttpEntityIndefiniteLength for content of unknown length.
https://pascalbugnion.net/blog/scraping-apis-with-akka-streams.html