Sustain: Episode 202: Ben Hutton on JSON Schema

SustainOSS SustainOSS 10/6/23 - Episode Page - 38m - PDF Transcript

Hello, and welcome to Sustain, podcast where we talk about open source sustainability for

the long haul. Who are we? Where do we come from? Where are we going? Why did I use a

single apostrophe instead of a double apostrophe in my Jason Schema? Oh God. Oh God. Very excited

to talk to you today. I am your host again, Richard Littower, calling from beautiful Montpelier

Vermont. And I'm here today with Ben Hutton, calling from across the pond in some UK. Ben,

how are you doing today?

I'm all right. Thank you, Richard. Thank you so much for having me today. I'm really

excited for coming on. See what discussion goes.

Yeah, this is great. So Ben, you are one of the privileged few. You're one of the people who

gets paid to work on open source all the time. You work as postman on the Jason Schema as a

specification lead. Can you tell me what that job entails?

Yeah, sure. So Jason Schema is a standard for validating Jason data. Initially, when I started

postman, I was kind of crossing off a lot of the stuff that I got left over from working in it.

Part-time outside of working hours. At the moment, I'm mostly sort of doing admin work,

leading, finding new ways to be forward, trying to gather visions and roadmaps and that kind

of thing. So yeah, just trying to move everything forward. So immediate question for a

product that is a lot easier to understand the market value for, let's talk about an app or

something that has users. It's like, cool, we want to get more users. We want them to click on

more ads or buy more subscriptions. Very easy to think about, is this feature part of that or

not part of that? For a Schema, Jason JavaScript object notation, believe is that right, is just a

way of making documents that's now very popular and everyone uses it. So I don't understand, A,

what's to improve? And B, what do you mean by moving forward for the Schema?

Yeah, so Jason Schema has been around a long time. I think the initial one was back in like

2013 or 2014 or something around that time. It was initially a very simple idea of just

defining what the properties are like and what sort of types they were. But that's evolved over

time to a case of more use cases. And there was a period where it didn't change very much as a

specification and loads of tooling built up. And fast forward a number of years and we have this

whole ecosystem where Jason Schema is being used way more than validation. It's being used to

generate code, it's being used to generate forms, being used to even generate database structures

now, which is way more than it was ever intended. It's a real challenge, because in order to do

things with something where it wasn't designed, you have to make assumptions. And people make

different assumptions and end up with making it not interoperable anymore. That's really the

strength of Jason Schema is its interoperability, meaning the same thing across many programming

languages, validate something in one programming language, and it validates the same in another.

And that's kind of been the biggest value proposition for Jason Schema.

Cool. So that's for Jason Schema. Can you tell me why Postman funds you to work on this?

Yeah. So Jason Schema is used by the open API specification, which is a standard for defining

the interface and data structure of APIs. And that's one of the things that Postman uses as part

of their products. And Jason Schema is becoming increasingly part of open API and other standards

that's underneath it, such as ACE and KPI. Yeah, I think Postman are seeing that Jason Schema

needs more work on it. And they're seeing that group that are trying to be forward with that,

but really struggling to commit the time and lots of things being stacked up. And it's not

being able to be forward at a rate that's really going to see value anytime soon. So while we

will kind of move along very slowly, there's definitely a lot more we could do going full

time on that. And not just with the specification itself, but raising the ecosystem and the

community up as well.

Talk about community. How many maintainers are working on Jason Schema? How many people in the

larger community?

It's really hard to put numbers on that. In terms of the core maintainership, there's

only about five or six of us. We're not all full time. So some of us are only there. Some of

the times that makes it really challenging. But we're looking at ways we can improve on that

number and be forward to have a more sustainable grief of individuals running that team. In terms

of the community, across our Slack server, we have five and a half thousand members. Across our

whole community, including GitHub and Stack Overflow and Twitter, the estimates come in 15,000

members. It's varying accuracy.

Plus, including every single JavaScript developer ever who will yell at you, things go wrong,

right? Yeah.

So very, very large community indeed. It's really cool to see that many people jump in to try to

fix the schema. They all know something that I clearly don't, because I'm still a bit confused on

why do open standards matter? Like, why is it really important that this is there? Why can't

everyone just be like, Yeah, that's it. It exists. We don't need to change it anymore. What are they

all trying to get out of it?

You can also tell me this is a dumb question.

No, no, it's a good question. I think there are multiple layers in which I can answer that. Like,

there are people that come into Slack server in our community to ask questions. And that's the

vast majority of people that have questions. How do I use JSON schema to do this? So how do I use

JSON schema to do that? And we have people in our team pretty much in every time zone. So people

always get good answers quite quickly. The second sort of layer to that answer is, because we don't

hold any implementations of the specification in our organization, and we don't hold any code that

people go and run from our specification. There's quite a large ecosystem. So there's at least one

implementation in almost all languages. More often than not, there are several and some there are

like 10 implementations to choose from. So not only do we have people coming that are using JSON

schema just somewhere, but we also have many of the implementers come and ask questions like, Oh,

how do I implement this particular change that's come in this last version? Or what

considerations do we need to have? Well, how can I improve my library to better support my users?

And we get a lot of them as well. We do actually get people coming in who are integrating into

larger systems, such as IBM and Oracle, when they're integrating it into their products, they

come and ask questions as well. So we kind of support big industry in that sense as well. Big

corporations come in and ask questions for us. So one way to look at it would be if I was a company

that was doing implementation in Elm or Rust or something, so that I could use JSON coming from

a website for my services. And I don't understand how it's exactly specified. I can come and ask

you, Hey, how do I implement this in this specification? Is this normal? And if there's

something that I need, I can say, Hey, can we have a proposal? Here's an RFP or something

to change JSON so that it also works for my use case. Does that sound about right?

Yeah, definitely. I think so. So if we think about it in terms of where companies get value,

one of the interesting case studies I did recently was with a company called Six River Systems,

which also names Shopify robotics now as they got acquired by Shopify. I think something else

went on in terms of them getting sold on somewhere else. We did a case study with them. And one of

their biggest challenges was communication between people of different expertise. They had

development teams and they had business analysts, which were doing these warehouse analysis and

machine learning algorithms to calculate the best way to organize and automate robotics inside

fulfillment warehouses. And these teams really struggled to communicate the structure of the

data they had and how they were going to work together. And by using JSON schema, they now had

a common language to define their data structures. So there wasn't any ambiguity. There's always

challenges when you're trying to define data using rows or standard English. If you add

contractors from around different worlds, particularly with remote working now, that's

increasingly difficult when English isn't the first language. So having a common language

to define your data structures, what's allowed and what's not, removing that ambiguity really

solves a lot of problems and prevents people putting bugs into production systems. Websites,

maybe not a huge deal. Robots, potentially much bigger.

Cool. Thanks for sharing that use case. Makes more sense to me now. That's super awesome. So

it's clear to me that you have a framework for working on this and that you have a core team.

That's awesome that you have so many members in the community as well who are interested in

helping out and assuming not just asking questions, but also diving in and getting their hands dirty

with curly brackets and double quotes. This is all part of a larger part of the internet,

which is just standards in general, which is often something that we don't think about when

we're just using a website. Why would we? It's down the stack. I don't think about my computer

running chips every single time I open it. I think, where is my latest Instagram feed?

So can you tell me a bit about why open standards are important?

Yeah, I think that's a really good question. As you say, standards out there and being used,

and we often don't see behind the curtain as to how they're created and how they develop over time.

Something that's more closer to high end that I use as an analogy for me is JavaScript and

programming languages. JavaScript specifically, because I speak behind the curtain a little bit

and looked at how that's developed and the processes behind getting something added to that

standard and seeing that process. And actually, it's really difficult to make that move forward.

And the processes that are involved in these standards matter because it's not just about

creating value, but also creating value that people are going to use and be able to use.

It's no good adding something to a standard if a particular company like Microsoft or Google

are not going to add it to their browser. And it's taking a lot of effort to get to that point,

particularly when we have server-side JavaScript in the form of Node now, and there's a lot of

disparity between Node and JavaScript, actually, but the standards that allow you to use something

in one place and something else in another and have them work in the same way are increasingly

important. And standards are really important for interoperability. I don't know if it's the

same as the US, but in the UK, for example, there's standards come in, they recently called

Open Banking, and it's enabled intercommunication between banks where people authorize their bank

to share their account information with other banks. So where people would previously have to

open multiple banking apps or go through very tricky processes to move money around,

there's now a authenticated protocol and standard communication processes to do those

kind of things that would otherwise been really hard. And it's created a wave of new digital

first banks. That's really interesting where we see this innovation that's come around and been

supported by a standard. So interoperability, making sure that there's less fun in the ecosystem,

making sure that people can work together, super, super cool. Part of the process of having a

standard in the first place and having an open standard is having a home for it. And there's

a lot of standards bodies that exist. There's IEEE, there's ISO, there's Linux Foundation Standards.

Where is JSON schema housed and why? Yeah, that's a really good topic of discussion right now

in the JSON schema organization. Originally, it was created as a personal draft in the IETF.

Personal draft is something that any individual can publish. They can publish revisions as well,

but they aim to potentially get it into a working group and become a fully fledged recognized

standard. JSON schema continues to be a personal draft for a long time. And the latest version

that we're now is still a personal draft. But we haven't expected to move it forward in the IETF

process. We had some discussions with various people in IETF and they weren't very receptive.

And they even pointed us to our own specification and said, oh, you should

join these people over here. They seem to be developing it. So we had some communication

issues. And I'm just thinking that what we wanted to do and how we were working didn't really align

with how the IETF operates. You know, having said that, we've decided to move away from the IETF

process moving forward and publish the standards by ourselves. But we're still taking some of the

ethos and ethics from the IETF that they define in their best common practices guide in terms of

how we expect to work. We value running code. We value working to consensus. There's definitely

value in the ethos and the way that they work, but it doesn't really align with how we want to

operate and how we are operating. It's possible for standards to fork. Yeah, we've definitely seen

that in the past. We've seen Node.js fork in Node.io and then there was some stuff that happened and

I didn't really keep track of things back then, but that fork doesn't exist anymore, right? And it

was kind of blip in history. And those that know the details of that are fresh in their mind. But

it's definitely possible for standards to fork. I mean, we can also look at something like Markdown

as a standard, which has been forked multiple times. And does it really have a, you know,

it's not published by a standards body as far as I'm aware. So there are lots of different

flavors, but the general IJ sort of keeps the same. Markdown is a good example because that is

used everywhere, even though it doesn't have a standard. Node, I think maybe is a bit different

because there's something that you run. You run Node.js and it works and you run IO.js and it worked

till they merged back in together. But when I think of JSON, its ubiquity just seems like

it would be very difficult to have another standard of JSON because all of a sudden all the APIs and

like every single programmer would have to use shims and make everything work and be very, very

hard. What I wonder about that is whether that makes it more difficult to deal with conflict in

the community. You just said that you're moving from IETF and you're going to publish your own

standard. And I'm curious if that was a really difficult decision and how you manage that as

a community lead as someone who's thinking a lot about not just the technical aspect, but

the other sides of coding. What is the difference between JSON schema and JSON?

Okay, so JSON is a thing that you make API calls within the data that you receive. That's JSON.

So you're familiar with that. You've made API calls. JSON schema is saying you should expect

an object and that object will have these properties in and it must have this property

and this property must be a string, for example, like JSON schema is a set of constraints rules

that define the structure of the JSON that you're expecting to be somewhere.

What I was worried about was having multiple implementations of JSON schema

such that one person says, no, no, this is valid. The other person says, no, that's not valid,

which I think would cause a lot of difficulties in the ecosystem. And it's one of the reasons

why you can't mess up with standards, right? Yes. Yeah. So does that add pressure? The fact that

like, no, it has to work all the time. The schema has to be a single thing. Don't go make another

schema where all of a sudden it's okay to have apostrophes that are single instead of double.

How does that work? Yeah. So JSON schema is written in JSON or anything that compiles to

JSON. So people do use YAML, for example, to make JSON schema and their extensions to IDs,

then maybe to do that sort of thing. In terms of the JSON schema standards,

occasionally we had people come in and want to radically change things. And they've been too

radical at times and we've had to say, sorry, that's not going to work for us. Why do you go and

do your own standards? See if you can get any traction from that. And they've done that.

And they've gone through the IDF process and they've got the other end of the standard,

but they don't have many implementations or they don't have a community. And it's kind of a very

different position than JSON schema, where other standards are kind of published and done. There's

not a continual effort to improve and resign them. You know, JSON schema, we're aware that we've

added new things fairly recently. I'd say recently is back in like 2019, 2009,

but still fairly recent for us in quotes. But yeah, it's a huge amount of pressure to get it

right. And one of the big challenges is getting that feedback from the community.

It's a challenge to make sure implementations are consistent, because many implementations

are actually not consistent. What we tend to find is they implement the basics fairly consistently,

otherwise we would have massive interoperability issues. But the more challenging areas of

implementation, such as referencing and understanding how to do relative URI resolution,

it can be quite confusing. Probably the most important thing that JSON schema has to combat

that is an official test suite. So we have a test suite which can be run in any language because

it's written in JSON. And that allows people to check the compliance of their implementation.

And it's been good and it's been really useful. But the challenge we've had with that again is

people take a snapshot of that test suite and never go back and update it or don't check for

any refinements. So we have a new tool which has come about fairly recently called Bowtie,

which is a meta tester where people can submit their implementations

and have them run against the test suite that everybody else is running. And you can see the

results comparatively across many implementations at once. I like that you mentioned the slow work

doing this work. Bowtie sounds great. That's awesome. But you said, hey, our last change was

really kind of 2019. That was four years ago, which is a while. And you work on this full time.

I've been working on this full time for the last two years. That's worth noting. So this is still

relatively new for me, full time. Well, how do you get funding for this sort of work? Because

it's so low level. Like, where does funding come from in the long term for this stuff? Postman

obviously is a very special use case. Postman is, actually, you could probably describe what they do

better than I do. But as far as I remember, they help you validate JSON. They help you look at

packets coming in. And it's like a developer tool that's very, very useful for analyzing

sorts of things. Yeah, I think Postman started off as just basic API client. And they've really

evolved that concept. And to cater for more of the enterprise market, they now provide a full API

platform and they can manage the whole API lifecycle. But it's really only the enterprises

that are even thinking about and considering those sorts of challenges where they have APIs in

life cycles and multiple instances of those happening. So not only can it build tests and

Mark's been a little set allows, probably more importantly, allows other people to come in

and test your APIs really, really quickly. So particularly when we saw in a Stripe, for example,

develop as a platform, you could go and test that really, really quickly and see it working

in Stripe's documentation. And I think a lot of companies saw that. And once it had the same

thing, but it's really hard to develop. So one of the offerings placement has is you publish your

collections, your sets of APIs to run, and being able to make those first API calls really quickly

encourages people to stick around and dig in your platform, or your particular API offering.

So that makes sense for Postman to fund JSON schema. I'm curious, who else is working on it

who is in front of by Postman and where are they getting when they come?

There are not that many people working on the guts of JSON schema in terms of the specification.

In terms of the tooling, there are companies which are concerned with low code tools such as

building forms that use JSON schemers. An easy way to do that. And so one of JSON schemers sponsors

on OpenCollective is a company called Retool. And they use it to generate forms because they can

pull the JSON schema from existing API definitions and build forms against them, for example,

enables their customers to build forms quicker than they would otherwise.

One of our sponsors is Airbnb, but we haven't had discussions with them. I think one of the

challenges is we have a small number of sponsors, but we haven't had the discussions with them in

terms of where they're using it and what their value is for them. But Microsoft is another big user

and we're slowly having conversations with them. And we have a case study pending,

which will probably be out by the time this airs on how GitHub is using JSON schema internally.

And it's been there so long that they can't even remember the decision process of adding it in.

That's one of the really interesting challenges for JSON schemers. We have people that are looking

at it and going, oh, it's an IETF person in draft, which means it's not ready to be used in production

right now. So we shouldn't be looking at it. And we have other people that have been using it for

so long. They have no idea how they got there and they don't really know how to maintain it or

understand it because people have moved on. So we have a really broad spectrum of users,

which I think is really interesting for projects or a standard that's continuing to be used and

evolve. I like the use of the word evolve. It makes me wonder about what are the stages for

standards evolution. So you have the first idea that comes from someone on a Tuesday while doing

their dishes who's working in a similar field is like, okay, I can do this. Then they get a lot

of people in the room. Sometimes it's a corporate room. Sometimes it's a corporate room with multiple

corporations. Hey, let's bang out of standard. Then eventually you have a group that says maybe a

website and you have a standard going, then the community gets involved. And it seems like you

end in this situation, which you're kind of in, which is we're working on it. It's slow work and

we're funded by people who particularly need this schema, but we also kind of work as consultants.

We're kind of here because we're specialized and it helps the company to have the most specialized

people working on the product so that they know what's going on. What comes after that?

Are you trying to work yourself out of a job by saying, no, it's good. We did it. Great. Let's

done. Now we're not working on other stuff. That's really interesting. Think about it from that

perspective. I think Jason's schema has a lot more to validate. If that's not a little bit too

meta. We've added some stuff back in 2019. We're still not really sure how that's going to play

out and the value people are going to receive from it. We wanted to communicate how to implement

some of those new features a lot clearer. And we've seen uptake by a few companies,

mainly to do with extensibility. Back when we weren't working on this full-time and probably even

now, we really lacked the time to respond to everybody's requests for adding new features

or new keywords to do different things to the standard. So we created this extensibility mechanism

that would allow people to add their own functionality but in a standards-compliant

way. So implementations could support the same definitions of those bits of logic across multiple

languages. And we've seen the open API initiative and the open API standard pick that up and use that.

And we've also seen Oracle attempt to pick that up and use that in their SQL standard product.

So while it's still quite young and we're still only really seeing people pick that up and play

with it, we want to build better connections with industry and potential sponsors, even the

implementation developers and maintainers to sort of draw them in and actually get the direct

feedback. With the more complex elements of the standard, we don't get lots of feedback other

than from new implementers that are really trying to dig in. What do you think the 10-year

view is for JSON schema? Like where will it be in 2033?

Wow, the sort of vision for that far out has been seen in a really small way with one of the

case studies we did. So I mentioned earlier how there was a period where the JSON schema ecosystem

really bloomed and took on all these new use cases it wasn't designed for. And my personal

vision, I know other people have some slightly different visions for JSON schema and work all

that out. My personal vision is I'll be able to see JSON schema use throughout the whole stack of

development, right the way from inception to defining your data structures and your models,

defining what those different domains that like to defining database structures, to defining

forms and the validation used across that whole stack where you have data in any way shape or

form and it being the single source of treestrap, all of them. So we did a case study with a company

called Open Mesa Data where they actually use JSON schema across their entire stack and the

person I interview with you can check out the video recording of the case study previously

worked for Uber and built up all of that infrastructure and data processing operations

using JSON schema and trying to work it in this way but really struggled. And the ecosystem just

wasn't quite mature enough at that time. And as it's evolved and developed, it has reached a point

where they can use it across the entire stack. I think they got lucky. I think they were fortunate

enough to either find tools that made the assumptions they wanted or to be able to

add tools or bits of the stack that didn't exist, had the assumptions they wanted or

they could define the assumptions they wanted to happen in place of not having the sufficient

language to define what they want. So I think they got really lucky but I would like anybody to be

able to do that. In order to do that, we have to define how to remove the ambiguity with

code generation or form generation or various UI generation, documentation generation. So there's

lots of extensions we need to define in JSON schema to be able to cater for those use cases.

And the only way that's really going to work is if we can get buy-in from different industries

and different enterprises and companies and organizations that rely on those specific areas

of technology. And like I mentioned earlier, the status process isn't necessarily just about

coming to consensus and defining something that people agree on, but it's also about gaining

buy-in to implementing and using that standard. Anybody can define a standard but if nobody uses

it, it's not really working. It's not achieving what it's set out to define. It's not providing

any value in terms of interoperability. So when we talk about extensions, you're talking about

developers saying we need this use case. It's going to be really cool. We can work with JSON

schema to make that happen. Okay, I'll go talk to you and make this extension valid or workable.

And they may be paid for their time, which is great. But if they're paid for their time and then

this extension is made, none of that money normally goes back to JSON schema. And I'm curious,

what are the financial needs for JSON schema that are outside of people being paid during the normal

jobs for this work? Do you feel that people who make money off of knowing the schema and working

together with JSON schema should be donating back in some sort of guild tax or something,

or a membership fee for being part of the community in the first place and so utilizing its efforts

to do good work? I think where JSON schema is now, we're quite happy in terms of the

sponsorship. We've got free placement and being able to have several people working full-time.

And I think if placement when it's decided they didn't want or need to support that effort anymore,

we would probably be able to find other venues that were looking to support those kinds of activities

or would go back to full-time work and do it on the side. But we definitely want to

make JSON schema more maintainable. One of the objectives we had from a recent summit,

on leadership summit in JSON schema, we ended up drawing a roadmap and we want to assess our

financial stability. And what does it really cost to run JSON schema? What are our outgoings?

In terms of infrastructure, it's relatively little. We host our site on GitHub and we

proxy it through Chadflare, but the real cost of that is practically nothing. Other than people's

time, there's not really any cost. I think that's one of the interesting things about being a standard

as opposed to an open source project or an open source tool that self-hasts. There are definitely

potential revenue streams for commercializing side projects. I know some people in the community

are doing that and there's some really interesting things developing. But yeah, I don't really know.

I think that's something that I'd be interested in exploring and seeing if people want to contribute.

I think there's definitely a sense of JSON schema could be supporting and encouraging

development of implementations and helping them become more compliant. If it's the ecosystem

grows and develops and stabilizes and increases the level of interlockability it has, the people

that use JSON schema and rely on JSON schema are going to have their value increased and they're not

necessarily going to know where that money needs spending or even how to allocate and assess the

quality of the implementations. That's one of the big strengths of work we're starting to do over the

next year is how to be assess implementation quality, how to make sure they're running the test

suite. Then if we have more funds, how can we share those funds out between implementations that are

trying to move towards compliance and how do we support and sustain those implementations?

They get to fix bugs or have increased users that have problems or issues that they're reading.

So there's definitely a sense of we want to support the ecosystem because

the standard strength is the ecosystem. We had two implementations and two languages.

JSON schema will be pretty useless. One of the things we often get asked is,

why use JSON schema when I can just use this validation tool in a specific language?

And we're like, yeah, that's lovely. Please go and use that. But if you want interlockability,

if you want flexibility to define something in a way which is going to be used the same across

multiple languages and understood by people with different working backgrounds, then JSON

schema really is going to provide you a lot of value. Sounds like you have a really clear

understanding for the value of JSON schema, which, understandably, makes sense.

Harari's book, Sapiens, had this funny flip where it says that actually, if you look at the history

of humanity, we are just vectors for wheat. Wheat is now everywhere and all we've done is

made wheat go everywhere. And if you think about it, all we're doing is helping wheat out,

which is really, really cool. And I like thinking about that metaphor when I think about

software projects and languages and schemas. So if we think about JSON schema, we're helping it go

forward, we're helping it propagate into the world. What are the major threats to a schema besides

forking, besides someone saying it was going to use its other validator? Or is that how schemas

die? Is there something else? Like, is there a new JSON schema 2.0 that's coming up that's going

to take over JSON schema and make everything, you know, have to be redone? There have definitely

been other similar projects that have come and gone. And there are other projects that are trying

to do something very similar to JSON schema, but are subtly different or focus on a particular

use case or have a particular commercial product attached. JSON schema doesn't have those things.

I think the biggest threat would be if something were to replace JSON. But then I think we're going

to have a lot bigger concerns than JSON schema, if that's what happens. And we could go back to XML,

I don't know. But I think as a community of developers at large, we've tried to move past

that and JSON is the most popular because it's the easiest. And if people complain about JSON in

general, having too many great marks or being too verbose, too verbose is an often common

challenge or a question like why is it so verbose? Why can't we have comments? Why can't we have this?

And sometimes the simplicity is what makes it so powerful. And a similar with JSON schema,

JSON schema, you can just use the simplest parts and use the smallest bit that you need.

And I think that's what makes it powerful is it can be really easy to learn. There are some more

advanced things in the data sphere, like RDF or link data. And they're really interesting and

they're really powerful for science that need to do more complex things like do ontology comparisons

and do some really clever data analysis of ontological data. But they're really hard to

learn. So people really can't get much traction with them. And honestly, people see the value

that they might provide, but really struggle to get on board with them. There are similar

standards in that space that are trying to use link data. But again, it comes back to JSON.

It's the simplest that we have at the moment. So if we have that with anything simpler,

that's not YAML, that is people confused because it's a complicated, then yeah,

maybe we'll see something different. But right now, as long as JSON is the top of that,

I think JSON schema will continue to be the most used data definition standard for a while.

Bill, a strong urge to YLCSV forever and run out of the room, but I won't.

Thank you so much for sharing your thoughts on this. We are running up on time. So I want to

ask, where can people learn more about JSON schema? JSON schema is online at jason-schema.org.

If you want to join our Slack server, it's just forward slash slack on the end of that.

That's the best place to learn all about our community and what we're doing

and how I'm moving forwards. We have public roadmap on our GitHub at jason-schema-org

as our GitHub organization. So you can find more about us there as well.

Where can people donate Open Collective? On Open Collective, you can find us at jason-schema.

I see that you're hosted both by OSC as well as OpenJS Foundation. Can you tell me which

one is doing fiscal hosting and how that works? Yeah, certainly. JSON schema started the Open

Collective a while back and we joined the OpenJS Foundation later. The OpenJS Foundation takes

on the JSON schema projects and takes the responsibility for the business elements,

including finances. One of the clauses in joining is that the Open Collective

remains outside of the organization officially, is only for the benefits of the maintainers

directly. And we have a disclaimer at the bottom of our Open Collective.

That makes sense. Where can people learn more about you online?

Twitter at reliquestral. That's probably quite hard to work out the pronunciation of, so

feel free to look in the show notes for that. Also, benbutton.me, which you will find in the

inventory. Feel free to reach out if you have any JSON schema questions.

Sweet. Don't leave yet. This is now the time to show where we have Spotlight,

where we highlight other projects, people or things that have helped us out in our career,

or if you're the host and you've done hundreds of these, just a book that you've been reading

recently, which is what I'm going to do today. So my spotlight today is Sir Gawain and The Green

Night, the Tolkien edition. Tolkien was a really bad poet who really liked iambic pentameter and

assonance. And he's just generally horrible. But I rather like this translation a lot. It's really

fun. So if you want a good read, go read Sir Gawain in The Green Night. And if you want to

understand the story a bit more from a different context, if you're not much of a poetry reader,

the movie The Green Night was exceptional. And I highly suggest checking out a very,

very weird film that I really liked. So those are my spotlights today. Ben, what's your spotlight

today? My spotlight today is a small application called Meeting Bar, which sits in the Mac OS toolbar.

And it shows that the current items are from your calendar to give you quick access to the

drawing meetings. I found it particularly annoying is after I go and open my calendar, find the

meeting link and click on that to join meetings. I might forget a meeting. So having something

always in my toolbar, which shows me what my next event is, my next meeting is really,

really useful. And particularly for staying focused on the current tasks as well.

Can't tell if that's brilliant or horrible. It's one of the two. Cool. All right. I love that. Ben,

thank you so much for coming on. Listeners, hope you enjoyed this program. If you have,

there's a lot of things you can do. One, you can come join the conversation on discord.sustainosas.org.

You can join us on social media at Sustain OSS pretty much in most of the social medias.

You can also donate on our open collective at Sustain OSS or go to our website at sustainosas.org

or go to the podcast website, podcast.sustainosas.org to read the show notes. You can also send an

email to us podcast.sustainosas.org. There's kind of a theme with the URL you may have noticed,

where we'll be happy to read any complaints or phrases. Feel free to send them along too

or suggestions for future topics or questions you wish we had asked. Very happy to field those.

Also, like this podcast wherever you download it. And if you're accessing this using a phone or

using the web, wherever you're finding this, know that some work somewhere down the stack has

involved Jason Schema. So go to Jason Schema's open collective and donate to them and be grateful

and be awesome. Ben, thank you so much for coming on today. I really appreciated it.

Long time fan of your work. And I hope that you continue to do it possibly. And thanks again.

Thank you so much. And thank you for having me today Richard.

Machine-generated transcript that may contain inaccuracies.

Guest

Ben Hutton



Panelist

Richard Littauer



Show Notes

Hello and welcome to Sustain! The podcast where we talk about sustaining open source for the long haul. In this episode, Richard introduces us to Ben Hutton, a Specification Lead for JSON Schema at Postman. They discuss the evolution and diverse applications of JSON Schema, its funding, and the importance of open standards for interoperability and innovation. The episode delves into real-world use cases, community feedback, and the 10-year vision for JSON Schema. Join Richard and Ben as they explore how JSON Schema is shaping the development stack and its potential impact on various industries. Hit download now to hear more!

[00:01:00] Ben describes his work on JSON Schema at Postman. His work entails leading the project, finding ways to move forward, creating visions and roadmaps.

[00:01:50] Richard brings up the question of understanding the market value for a Schema like JSON and asks Ben to elaborate on the improvements and ways they are moving forward. Ben explains how JSON Schema has evolved over time to cater to more use cases.

[00:03:22] Ben explains that Postman funds his work because JSON Schema is used by The OpenAPI Specification, a standard for defining the interface and data structure of APIs, which is a part of Postman products.

[00:04:20] Richard asks about the number of maintainers and community members for JSON Schema, and Ben tells us there are about five or six core maintainers and a community size around 15,000.

[00:05:16] What’s the importance of open standards and why do they need continuous improvements? Ben explains that the team helps developers understand and use JSON Schemas and supports the implementers of the Schema across different programming languages.

[00:07:24] Ben discusses a use case with Six River Systems, illustrating how JSON Schema helped different teams within a company to define their data structures and communicate more effectively, preventing bugs and misunderstandings.

[00:09:29] We hear why open standards are important, as Ben states that standards are vital for creating value that people can use and ensure interoperability and they can also spur innovation.

[00:11:51] Ben explains that JSON Schema was initially a personal draft within the IETF, but due to lack of alignment and communication issues, they’ve decided to publish their own standards while still maintaining some principles from the IETF.

[00:14:51] What’s the difference between JSON Schema and JSON? Ben explains JSON is used for API calls, and JSON Schema defines the stricture of expected JSON data. He also speaks about managing radical change requests, maintaining standards, and the value of community feedback, and he reveals an official JSON Schema test suite and a new tool called Bowtie.

[00:18:23] Richard asks about the funding and progression of JSON Schema, given its foundational role and slower pace of development. Ben describes Postman’s evolution from a basic API client to a comprehensive API platform.

[00:20:01] Ben mentions other companies, such as Retool and Airbnb, that support JSON Schema due to its utility in their own offerings, and he talks about Microsoft’s usage and a pending case study on how GitHub uses JSON Schema internally.

[00:24:09] Richard asks Ben about his 10-year vision for JSON Schema. Ben envisions JSON Schema being used throughout the entire development stack, from inception to defining data structures and models. He tells us about a case study they used from Open Metadata.

[00:27:18] The topic of financial needs for JSON Schema is brought up and Ben is content with current funding but admits they need to assess financial stability. He also tells us about future plans improving compliance and supporting the ecosystem to ensure interoperability across different languages and backgrounds.

[00:31:12] Richard asks about potential threats to JSON Schema, and Ben mentions that biggest threat would be if something were to replace JSON, and simplicity and ease of learning are key strengths of JSON and JSON Schema.

[00:33:47] Find out where you can learn more about Ben and JSON Schema online.



Spotlight


[00:35:31] Richard’s spotlight is the book, Sir Gawain and the Green Knight by J. R. R. Tolkien and The Green Knight (film).
[00:36:08] Ben’s spotlight is MeetingBar for Meet, Zoom & Co.


Links


SustainOSS
SustainOSS Twitter
SustainOSS Discourse
podcast@sustainoss.org
SustainOSS Mastodon
Open Collective-SustainOSS (Contribute)
Richard Littauer Twitter
Ben Hutton Website
Ben Hutton Twitter
Ben Hutton Mastodon
JSON Schema
JSON Schema Slack
JSON Schema GitHub
JSON Schema Open Collective (Donate)
JSON Schema Twitter
Postman
Open banking (Wikipedia)
Open Banking
Bowtie
Retool
Open Metadata
Sir Gawain and the Green Knight by J. R. R. Tolkien and E. V. Gordon
The Green Knight (film)
MeetingBar for Meet, Zoom & Co


Credits


Produced by Richard Littauer
Edited by Paul M. Bahr at Peachtree Sound
Show notes by DeAnn Bahr Peachtree Sound

Special Guest: Ben Hutton.

Support Sustain