-
Notifications
You must be signed in to change notification settings - Fork 104
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update web server to http4s #966
Comments
@pauljamescleary What's the benefit of moving to http4s? How does this standardize the stack? TBC, I'm not opposed, I just want to understand the rationale. |
Good questions. The json stuff originally implemented is dated and there are much better ways to do it now that would simplify the code. That’s the gateway drug to be honest. We have moved to using other typelevel libraries to where typelevel libraries are the norm. Those include fs2, cats, cats effect and pureconfig. Moving to http4s and circe rounds out our typelevel migration. The effect is consistency, akka-http is a bit of an odd ball at the moment. We have to do an unsafeToFuture in it which is ok but would be preferable to be cats effect all the way down. Some random thoughts there as I’m mobile right now, but happy to have the discussion. |
Yeah, it would be great to not have to worry about processing the effectual actions. The fewer I do like to remain pragmatic, though, and this would be a tough to do incrementally. Maybe it's time to consider a major release that makes some major foundational shifts - http4s, consolidated portal, Scala 3, improved CI pipeline, etc. Since our current release isn't seeing many functional changes (though more are in the pipeline) it may be a good time to split off, and start work on VinylDNS vNext. We can port any functionality added to the 0.x version to the vNext version as they trickle in. I would propose strictly foundational changes for vNext. We can build new and exciting features on that clean foundation after initial release. I think we have a good start for the foundation changes from several of your issues, we can wrap those into a roadmap/execution plan. Something to consider. Maybe @vinyldns/maintainers can chat and come up with a strategy. |
@raghu999 That's a good idea. I'll start a thread over there |
We have been using akka-http for a while. As a tech project, would like to explore changing to http4s as part of standardizing the stack.
Opening this as a discussion to explore ideas. Here are the major parts that would need to be moved:
JSON - there is custom json validation that is now outdated. Should move to circe, care must be made here to ensure request and response payloads remain backward compatible
Authentication - the signing process is separate, which I hope would make using auth in http4s straight forward (but have not delved deeply as of yet)
Services - the existing Akka HTTP stuff is rather thin, all the business logic resides behind services. Like with JSON, remaining backward compatible is key.
Tests - we have a lot of tests using the akka-http test kit. This is definitely a lot of work
Considerations:
The text was updated successfully, but these errors were encountered: