Skip to content

Features/Roadmap #1

@WolfDan

Description

@WolfDan

Features/RoadMap

An issue describing short and long term features as well the roadmap

Short term goals

  • Property Values

    • Primitive types List
    • I18N Strings (for this we need string indexing in order have sense, otherwise is just a property with and @ and the language at the end, so far theres no solutions for this on the erlang/elixir ecosystem, I don't know too much about the topic either, so futher discussions/PRs are welcome)
    • Enums
    • Dictionary (Use a node)
    • Datetime
    • Time
    • Date
  • Index

    • Datetime
    • Enum
    • Time
    • Date
    • List
    • String (Exact match)
    • String (Hash match)
    • String (Full text search)
    • Integer
    • Float
    • Dictionary (Use a node)
  • Node implementation

    • Update
    • Delete
    • One to One relationships! (User <--> UserConfig)
    • Set data
    • Get data
    • Index property edges
    • Inverse Node support (relation.uid, "edge_name", node.uid) = node_relation_edge.uid
  • Edge implementation

    • Index property edges
    • Update
    • Delete
    • Set data
    • Get data
  • Query support

    • where

      • Datetime storage { year, month, day, seconds }
      • > KeySelector.first_greater_than(key)
      • < KeySelector.last_less_than(key)
      • == get_by_function(property, value, function = Function.equal)
      • >= KeySelector.first_greater_or_equal(key)
      • <= KeySelector.last_less_or_equal(key)
      • and
      • or
    • pagination support (cursor based)

      • after Transaction.get_range(after_cursor, end, limit)
      • before Transaction.get_range(before_cursor, end, limit, reverse=True)
      • limit
      • first Transaction.get_range(start, end, limit=first)
      • count
    • sorting

      • order_asc index query
      • order_des index query
    • reverse node

    • functions

      • min atomic
      • max atomic
  • Ztandart data compression

    Compress long sized strings in order to save space, unnoticeable performance impact

Long term goals

  • Types check!

  • More tests

Maybe

  • Network Protocol implementation

    • GraphQL (standard query, mutation language) [this uses the connection
      features of GraphQL to make it easier to query graph data]
    • Opengraph (complex query for things like recommendation engines etc)
  • query optimization/planning, what most databases does.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions