Andrew O'Hara
08/10/2023, 2:06 PMleonhardt
08/10/2023, 3:20 PM• automated path/body lens building and HTTP message inject/extractThis is the biggest opportunity imo. The lens system is elegant and the syntax is tight. However it's a little novel when learning it and in my experience once a convention is set in a codebase working with lenses starts to feel like a chore. When working with a framework like Spring Boot you don't really even need to know that Jackson is probably doing the deserialization/serialization, it just starts working. If you want a url parameter you just add a function parameter with a particular annotation. https://spring.io/guides/tutorials/rest/#_http_is_the_platform
• resource-oriented API builder with common index,get,update, etc. operation helpers
◦ originally, I was going to require the use of result4k, but may instead opt for the familiarity of exception-based error handlingFWIW I end up doing this myself in my http4k projects. If you could find a way to offer alternatives for error handling approaches (e.g. alternate imports or dependencies) I'd be a big fan. Arrow's Either might be a good choice too (given my anecdotal understanding of its popularity).
• consider jdbc/h2 integration◦ despite http4k's incredible DynamoDB integration, it might be a bit niche ◦ include orm like exposed/jooq/?? I suppose all the big frameworks provide batteries for data access as well, but this is the least exciting one to me. I think the specialization of the http4k framework on HTTP is part of what makes it compelling–and I think that philosophy could make a "batteries-included framework" successful as well. Especially with all the increasingly good options for data access in the ecosystem. Quick shoutout to #squarelibraries's SQLDelight, for example. I feel like the data layer libraries/frameworks/etc out there already pair well with http4k and a framework integrating them for you doesn't add as much benefit for development teams as the other opportunities you've listed. Overall I think it's an interesting proposition.
James Richardson
08/10/2023, 3:37 PMdave
08/11/2023, 11:57 AMOliver Eisenbarth
08/13/2023, 2:52 PMThere are lots of patterns that we haven't really talked about but keep using, as well as the the "BackOfficeGateway" which is a secured unified support Swagger gateway across all services (...)You mean like the API-Gateway in the "Hyperpyramid"-Example? I was wondering if that was only for presentational purposes or if coding your own Gateway is something you'd do in production / for clients.
dave
08/13/2023, 2:54 PMOliver Eisenbarth
08/13/2023, 3:10 PMdave
08/13/2023, 3:11 PMOliver Eisenbarth
08/13/2023, 3:12 PMOliver Eisenbarth
08/13/2023, 3:14 PMIt's not an API gateway because it doesn't expose an API to anywhere 🙂 - it's a UI.Well, that makes perfect sense. Thank you! 😅👍
dave
08/13/2023, 3:16 PMOliver Eisenbarth
08/13/2023, 3:25 PMdmcg
08/13/2023, 6:08 PMcount(all-of-the-microservices-running-in-your-local-cluster) > 1
, and I found as I got older that I’m allergic to microservices.dmcg
08/13/2023, 6:09 PMOliver Eisenbarth
08/13/2023, 6:44 PMI found as I got older that I’m allergic to microservices.
Perfect for a Halloween special! "Duncan's Nightmare: #Microservices #BOG #AngryGoblin" 😉