The Maximal Graph - Wilker Silva

Learn how Nubank's Maximal Graph system handles complex data relationships and queries, utilizing a triplet store, EQL, resolvers, and GraphQL services for scalability and decentralization.

Key takeaways
  • GraphQL is a custom language with a typed schema and supports introspection, enabling features like auto-complete and cool introspection features.
  • The Maximal Graph is a system created by Nubank to handle the complexities of large, distributed systems and rich demands.
  • The system uses a triplet store and EQL (Entity Query Language) to define properties and relationships between entities.
  • Properties are represented as entities themselves, with their own meta-levels of description.
  • The system uses resolvers, which are edges connecting properties, to define how data is fetched and transformed.
  • GraphQL services can be used to handle complex queries and provide a way to batch requests.
  • The system uses a query root mapping to access GraphQL from the root, and has support for mutations.
  • The Maximal Graph is a feature-rich system that can handle complex data relationships and queries.
  • RDF (Resource Description Framework) and RDFS (Resource Description Framework Schema) were discussed as other systems that can handle similar complex data relationships.
  • The system has a strong focus on scalability and handling large amounts of data.
  • The speaker emphasized the importance of using a typed schema and supporting introspection in GraphQL.
  • The system uses a property-centric approach, where properties are treated as entities themselves, rather than as attributes of an entity.
  • The speaker discussed the importance of avoiding collisions between property names, and using prefixes and aliases to resolve this issue.
  • The system has a strong focus on decentralization and allowing multiple services to interact with each other.