Data Composability on the Sovereign Web by Joel Thorstensson
Ethereum Denver·Mon, Oct 9, 2023, 12:00 AM
A central pillar of the Web3 vision is ‘composable data’; the idea that the information that powers our online experiences can be read, remixed, and 'composed on' by applications across the web. This reusable model is in contrast to today's model, where data is primarily trapped in application-specific siloes. Composable data is a paradigm shift for how the web works because it not only changes ***how*** applications are built but ***what*** an application is. Ethereum and ERC standards paved the way for permissionless innovation and composability across smart contracts, but the next frontier of decentralization will require technology that can power an ecosystem of composable, data-rich applications. This talk will provide developers with real-world applications and demos that showcase the power and innovation of decentralized data applications, and clear steps for how to use brand new tools in the Web3 data stack to build full data composability into their products. We’ll show you how live apps are already doing this to: - Supercharge coordination in teams and DAOs - Back Web3 products and communities with reputation - Create social features and applications
Transcript
all right okay this this actually works great hello everyone my name is Joel um I'm one of the creators of ceramic and our vision is really to enable the internet to not have style data because today a lot of the information that we generate when we interact online is actually locked into different applications and companies and to do this we need to make the web composable so today I'm going to talk about what composibility is and how we can actually make that happen so what does this problem look like in the first place and how does it manifest on the traditional web so this is a personal example where me and my team we're using notion to create product roadmaps we Define our projects with Scopes and specifications but notion is not really great when it comes to this like fine-grained like task management and issue tracking so for that we use another tool called linear but now we have to have and track our projects in these two different applications and oftentimes they end up getting pretty out of sync and this this is of course a problem and also we have to like have different accounts to sign into these different applications so it's just a lot of things to manage um and so how would we go about solving this well the web 2 approach to this is has mainly been to create an API um where maybe linear integration notion or the other way around and this can kind of work it can create decent experiences um but if you've been around and like see saw what happened with like Twitter and Facebook they have these open apis and a lot of people were building on them and then suddenly they got drug pulled and their entire application they were that they're building was no longer possible and so this approach of integrating an API of another company is actually problematic another approach could be for one of these applications is build everything but then we're kind of centralizing all that data into one application so what is composability then we need this shared State we need applications to build on the same data and the same kind of state but we also need to be able to have some kind of permissionless innovation and not have the state be able to be moved away from us so when we have permissionless access to the state we actually gain composability and composability really changes how we build applications in a traditional web 2 context we have a team that generally just builds the back end builds the front end there's a very tight integrated Loop but in in a more open and permissionless ecosystem like web3 we actually just have a bunch of different components that may or may not interact living on a core like open permissionless protocol and then there might be multiple different product teams that integrate towards these components and only pull in the components that they really care about and this really enables us to move much faster and have more Innovation happening and so we of course have seen this on ethereum a lot ethereum has a lot of composibility because we have these tokens we just enable a huge ecosystem of defy a huge ecosystem of dials and coordination tools a bunch of nft tooling that's used for art track real world assets and other types of Access Control and really the key thing here is that we have permissionless Innovation if someone deploys a contract I can rely on that contract being there and not being removed and not being ruggable of the application that I'm using or that I'm building um but a lot of data in web3 is still being siled so in particular this is very visible in the dial tooling space where when we do task management we discuss things on forms and both and so on and off chain systems all of the data that we generate as users tend to end up in like specific applications um so there's a lot of siloing happening there in Social applications we actually have some pretty better pretty much better like web3 social protocols and we have some compost ability within that domain like there are multiple different front-ends to some of these protocols but the data still kind of only composable within that domain of social applications and in knowledge graphs and knowledge types of applications there are more protocols similar to the social ones that allow us to have multiple front-ends but we still have all mainly composibility composability within the these knowledge apps and our reputation systems today in web 3 are mainly using on-chain information which is quite limiting what if we could just pull all of this into our reputation so ideally we would live in a world like this where I can start to contribute to a web 3 Knowledge Graph and the profile I'm using there is actually my my social profile and as I'm generating useful information I actually gain reputation based on that and eventually there's some dial that has some decision needs to make that looks at the knowledge that I generated to make that decision and so this is really what we need and what we deserve with web3 like have data be composable across all these domains right so doesn't sign in with ethereum kind of solve this if you can just sign in using our ethereum wallet to everything uh aren't aren't doesn't don't that mean that everything is now composable well we kind of solve part of the problem so signing with ethereum enables us to have the same account across multiple different applications and applications can pull in data from an ethereum to give you access to different things based on your assets but the data that you generate and gets stored on the application's backends and is still siled in these different applications because there's no we only have shared Financial States so ideally we could have a system where we store Financial State in something like ethereum and all of our other user generated content is actually stored in in a separate Network uh and this would really enable compostability it would allow us to have these application servers to be really thin or eventually hopefully Disappear Completely so what would we need to actually create this network that can store all these user generated content well we need essentially a network for composable data and for to achieve this all of the data that is generated by the user needs to have authority that's based in the user's account the user's wallet and the data needs to be reusable so I can reuse it across multiple applications and we need to be able to remix this data and if you're not satisfied with kind of how the data was in in some other application and finally we need this protocol to be web scale we need to be able to support millions and billions of users so ceramic is a protocol that can enable this and this Tuesday we announced compost DB so composed B is the graph database that's built on the ceramic protocol and it enables developers to create data models that are composable and that you can kind of pick and choose to build into your application so the base layer ceramic is an event streaming protocol composedly B indexes data and data models are kind of the um interoperability and composibility layer so how does ceramic enable this well ceramic at the core is an event streaming protocol where all of the data is stored in a hashlinked event log and this event log is generated by each user and signed by each user so we have strong security guarantees because actually we can verify that the user was the one that signed and generated this content and since every user generates their own event log we can actually Shard and scale this network much more than we can at blockchain because you separate the the users into different like components of the network and then the the whole system is anchored into ethereum for time stamping which makes it eventually consistent so so you can think of compost DB as an architecture like this where different applications can run composed B nodes and they basically index different parts of the ceramic Network so you can think of these puzzle pieces here represent a data model so maybe this is like a these three three person pieces are a profile a blog post and a comment and so one application might pull in the blog post and the profile the other one the blog post and comments and the third one is like a super application that pulls in all three of these and as users are interacting with these data is shared between these applications so to illustrate that a little bit more this is kind of what it would look like for an application developer where a first application might create a proposal data model and use that for to have their users create proposals so here we have like an author and some text then application 2 comes along and sees like yeah this proposal is great but we also want our community to be able to discuss these proposals so we're going to create a common data model that has a reference to a proposal and so when application 2 runs this they can query for proposals and also include all of the commons with these proposals and the neat thing here is that when this second application creates proposals they will automatically appear in the application at the first application and that's how we can achieve composability across these and reading and writing data in in compost DB is super straightforward using graphql so standard graphql queries and standard graphql mutations to to write data to compose DB and there is already a growing data ecosystem on ceramic this is two different data explorers one is called sourcecan the other one is called s3.xyc and both of them enable you to see the activity and the data is being written to ceramic and this is how you would like look for data models that might be relevant to your application and see like do they actually fit the schema that you're trying to use for your users data and do they actually have like a lot of adoption these these models that you might pull into your application and to give you a better idea of like what what can be built with this I'm going to highlight some some examples from our community so orbis is building a web 3 social network that leverages the composed B functionality and not only do they store their data and ceramic they also pull in verifications and other types of data from other applications in the ceramic ecosystem lateral is building a decentralized science Knowledge Graph and what they're doing is building out this graph of knowledge and information and since all of the edits to this graph is attributable to an ethereum address what they want to do eventually is start rewarding people that meaningfully contribute to this knowledge graph um taoism system is building something really cool around nose is safe so if you use noses safe at some point you notice that you need to sign multiple transactions to actually make your multi-stick transaction happen and these partially signed multi-sign transactions so stored on the noses safe centralized server but diversity system is they've created a decentralized alternative to this where they essentially store these partially signed multi-sig transactions on compostdp and enable people to build up different types of applications without centralization of these partially signed transactions and finally get coin is using ceramic to create a reputation system to prevent civil attacks all right finally I just wanted to call out that we have 20km prices for this hackathon and we would love to see people build things across these different domains that I mentioned and also would be cool if someone actually like composes across different domains um and in particular if if you're building something and you see someone else who's like building and using a data model that might be interesting to your application you can actually just like pull in their data model and and kind of get part of your application flow created for free all right if you want to learn more um join our Discord we also have a Blog and some documentation thank you very much [Applause] [Music]
Automatic transcript — names and jargon may be misspelled.