Live data from Hacker News

Smithy: A language for defining services and SDKs

awslabs.github.io

51–60 of 77 posts

Re: Smithy: A language for defining services and SDKs

#51

How does this compare to Google’s protocol buffers? [0] It looks like smithy has a broader set of applications. [0] https://developers.google.com/protocol-buffers

Protobuf and gRPC are great, and AWS will continue to make sure developers can be successful using them with AWS. I’ll try to explain how we ended up at Smithy instead of using other existing tools. We started working on Smithy around 2018 because we wanted to improve the scale of our API program and the AWS SDK team to deal with the growing number of services (over 250 now!) and languages we want to support in offic…

> Smithy's resource modeling helps us here too because it allows AWS service teams, as they adopt Smithy, to essentially automatically support CloudFormation resource schemas.

Hallelujah!

Re: Smithy: A language for defining services and SDKs

#52
This is great. I'm happy to see more evolution in the service definition space, especially in using custom DSL's. The low signal-to-noise ratio and boilerplate in OpenAPI and RAML is a killer IMO.

We're building something similar with Taxi (https://docs.taxilang.org), which provides a rich way to describe services and data.

Similar to Smithy's CityId example, we provide the ability to semantically describe attributes. Our product - Vyne (https://vyne.co) can then use these Id's to automatically chain and orchestrate any services together, without having to write integration code.

Re: Smithy: A language for defining services and SDKs

#53
post #32

Pardon my ignorance: once one gets to: https://awslabs.github.io/smithy/quickstart.html#next-steps well, what is it? What was autogenerated? I know JAVA from previous jobs, but not Gradle and whatever the Smithy generated artifacts are to be composed with is unclear to me.

It's not really a fully finished project yet, so not much. We shipped the AWS SDK for JS v3 with Smithy, the AWS SDK for Go v2 with Smithy, and just launched an alpha of the AWS SDK for Rust using Smithy. More are in the works. We're currently iterating on their code generators to make them easier to use outside the AWS SDKs. AWS SDKs are being built in a layered approach where there's a generic code generator that's…

Python?

Re: Smithy: A language for defining services and SDKs

#54
post #53

Earlier quoted context omitted.

It's not really a fully finished project yet, so not much. We shipped the AWS SDK for JS v3 with Smithy, the AWS SDK for Go v2 with Smithy, and just launched an alpha of the AWS SDK for Rust using Smithy. More are in the works. We're currently iterating on their code generators to make them easier to use outside the AWS SDKs. AWS SDKs are being built in a layered approach where there's a generic code generator that's…

Python?

Python with interoperability with FastAPI and Pydantic models would be fantastic

Re: Smithy: A language for defining services and SDKs

#55
post #47

Earlier quoted context omitted.

Why duck? WSDL still beats the crap out of most newer would-be contract definition standards. OpenAPI is ok, but the tooling comes from all from the same place.

soap was a really good interoperability protocol for adding kilobytes of overhead to simple text based rest rpc where interoperability was defined as being able to interoperate with clients and servers from the exact same software environment. trying to get perl to talk to windows or windows to talk to java or java to talk to perl never really worked at all. but wsdl was like this tempting thing. self describing serv…

Apparently this is V2 or even v3 of something internal. So probably V1 did what you were saying :-)

Re: Smithy: A language for defining services and SDKs

#56
Smithy, Protoforce, Taxi - is the assumption synchronous request/response? OpenAPI has callbacks (https://swagger.io/docs/specification/callbacks/), I am not seeing that in these others.

The other thing I am not seeing is a service registry, eg something like UDDI. How do microservices know about each other? Is that a build over common IDL and a coordinated deploy?

Re: Smithy: A language for defining services and SDKs

#57

Smithy, Protoforce, Taxi - is the assumption synchronous request/response? OpenAPI has callbacks ( https://swagger.io/docs/specification/callbacks/ ), I am not seeing that in these others. The other thing I am not seeing is a service registry, eg something like UDDI. How do microservices know about each other? Is that a build over common IDL and a coordinated deploy?

Taxi+Vyne gives you a complete service registry, so both users and systems can discover services and data.

Because Taxi lets you describe how data from services relate, Vyne can work out how to connect services together automatically, and handle the integration for you. This is a realisation of the UDDI concept, where systems can autonomously work out how to operate with each other.

Re: Smithy: A language for defining services and SDKs

#59
post #48

Earlier quoted context omitted.

We focused on the desktop because it is difficult to use from mobile due to it being an online IDE. I'll take a look, thank you for reporting.

I get your thought process, but two things: 1. If you use flexbox from the beginning, you can easily have basic readability on mobile. 2. A huge % of users will discover things on mobile, even if those things are desktop apps. I wasn't even able to tell what your product is at a basic level.

Noted, thank you.

Re: Smithy: A language for defining services and SDKs

#60

Smithy, Protoforce, Taxi - is the assumption synchronous request/response? OpenAPI has callbacks ( https://swagger.io/docs/specification/callbacks/ ), I am not seeing that in these others. The other thing I am not seeing is a service registry, eg something like UDDI. How do microservices know about each other? Is that a build over common IDL and a coordinated deploy?

For protoforce, we provide completely asynchronous server and client SDKs for scala and nodejs, also we suport websockets as a transport.

Java sdk is built on Futures, so somehow it's async as well.

Also we support server-to-client calls, which, effectively, are a better alternative to callbacks.

Post reply on HN