Comments (7)
I believe codegen is the way to go at first. In theory it's possible to use reflection on the server to "type" the API based on the contract ABI, in practice it's 20x the effort. The benefit of the second approach is that users can use the same server binary across projects, which in turns means ryogoku (the dojo as a service project) can more easily create api servers on the fly.
from dojo.
grpc/protobuf is good at that because all fields are optional and devs can add or delete fields from the struct and the parser still parses them.
from dojo.
Is there a way to do event versioning?
One issue we ran into when building Realms is dealing with historical events and contract upgrades. Let's say you want to display combat history on the client. Every combat result is represented by a CombatOutcome
event. The problem is we had to update the structure of the event (e.g. unit composition, adding/removing a field, ...) with a lot of the updates to the combat logic. We settled for a pragmatic approach of doing CombatOutcome1
, CombatOutcome2
, etc. whenever there was an update of the event.
from dojo.
this can be tackled now we have the manifest
from dojo.
@fracek do you want to tackle this?
from dojo.
It's not super clear to me what's going to be typed. I see that entities are exposed through graphql, so maybe that?
from dojo.
closing this as implementation path has changed
from dojo.
Related Issues (20)
- Authorizations using overlays seem to fail HOT 4
- Namespaces dojo-core testing HOT 1
- Namespaces integration for Sozo commands HOT 1
- Namespaces integration for Torii database
- Namespaces integration for SDKs dojo.c
- Bootstrap Saya demo project with shard execution HOT 1
- Migration of models when schema changes HOT 6
- Add support for `2023_11` edition HOT 5
- World metadatas no uploaded after fail HOT 1
- `useEntityQuery` returns deleted entities HOT 6
- ci: Github Action for `cargo-udeps` failed HOT 1
- [BUG] Importing torii-relay into a new rust library leads to a compilation error HOT 7
- Deprecate package name for profile usage HOT 6
- Add contract registry to the world HOT 3
- Empty entity for event message subscription unhandled
- [BUG] [TORII]`updated_at` not updating HOT 3
- Add support for signed integers HOT 3
- [BUG] Torii wrong tx status in pending block HOT 1
- ci: Github Action for `cargo-udeps` failed HOT 6
- Sozo init remove git HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dojo.