This utilises the knowledge learnt from Zio2Playground.html and applies it to https://disneystreaming.github.io/smithy4s/.
The teason for being interested in Smithy is it handles ADTs in requests and responses. One of the joys of Scala is ADTs. Having payloads that can have values in some circumstances and not others is difficult otherwise. Errors should happen at deserialization not in the app on random edge cases.
Full readme can be found at https://github.com/pbyrne84/smithy4s-zio-opentracing
Test exercising everything can be found at ZioMainSpec.scala.
Challenges faced include
TASK[_]
. The dependencies need to be provided to create that signature.
The easiest way seems to using the ZIO smithy compatible implementation as a facade that gives live layers and then
the lower level actual business services can be tested singularly with custom layering.