<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aditya Mukhopadhyay</title>
    <description>The latest articles on DEV Community by Aditya Mukhopadhyay (@adityamukho).</description>
    <link>https://dev.to/adityamukho</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F328347%2F94121027-ccde-49dd-b6c4-1f4ae61651a5.jpeg</url>
      <title>DEV Community: Aditya Mukhopadhyay</title>
      <link>https://dev.to/adityamukho</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/adityamukho"/>
    <language>en</language>
    <item>
      <title>CivicGraph is now RecallGraph</title>
      <dc:creator>Aditya Mukhopadhyay</dc:creator>
      <pubDate>Thu, 01 Oct 2020 10:10:28 +0000</pubDate>
      <link>https://dev.to/adityamukho/civicgraph-is-now-recallgraph-57o2</link>
      <guid>https://dev.to/adityamukho/civicgraph-is-now-recallgraph-57o2</guid>
      <description>&lt;p&gt;I had &lt;a href="https://dev.to/adityamukho/civicgraph-a-versioning-data-store-for-time-variant-graph-data-1pja"&gt;posted earlier&lt;/a&gt; about an open source temporal graph database that I have built, named CivicGraph.&lt;/p&gt;

&lt;p&gt;I am thrilled to follow up on that with a lineup of exciting announcements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;CivicGraph is now renamed to &lt;em&gt;RecallGraph&lt;/em&gt;. This was deemed necessary to avoid confusion with another identically named (but functionally different) product by Microsoft. Also, the new name serves as a useful reminder for what the product is designed to do.&lt;/li&gt;
&lt;li&gt;RecallGraph has its own sparkling new home. Check out &lt;a href="https://recallgraph.tech/"&gt;https://recallgraph.tech/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;There is also a dedicated documentation website, replete with concepts, terminologies and a comprehensive guide to getting started with the product. Check out &lt;a href="https://docs.recallgraph.tech/"&gt;https://docs.recallgraph.tech/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;New API endpoints to support advanced functionalities like purge and restore.&lt;/li&gt;
&lt;li&gt;Built-in support for distributed tracing, based on the &lt;a href="https://opentracing.io/"&gt;OpenTracing&lt;/a&gt; standard.&lt;/li&gt;
&lt;li&gt;More improvements, both major and minor, all listed at &lt;a href="https://docs.recallgraph.tech/working-with-recallgraph/changelog#1-0-0"&gt;https://docs.recallgraph.tech/working-with-recallgraph/changelog#1-0-0&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Support for Foxx's &lt;a href="https://www.arangodb.com/docs/3.7/foxx-guides-dependencies.html"&gt;service linking&lt;/a&gt;, documented at &lt;a href="https://recallgraph.github.io/RecallGraph/"&gt;https://recallgraph.github.io/RecallGraph/&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A community support forum hosted at &lt;a href="https://gitter.im/RecallGraph/community"&gt;Gitter&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Swagger API documentation (standalone) at &lt;a href="https://app.swaggerhub.com/apis-docs/RecallGraph/RecallGraph/1.0.0#/"&gt;https://app.swaggerhub.com/apis-docs/RecallGraph/RecallGraph/1.0.0#/&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are still miles to go, with a long development roadmap ahead. I am indeed grateful to all of you who have supported and encouraged me to keep building and improving this project! I hope it provides productive service in your tech stack(s) some day.&lt;/p&gt;

</description>
      <category>temporal</category>
      <category>graph</category>
      <category>database</category>
    </item>
    <item>
      <title>CivicGraph - A versioning data store for time-variant graph data.</title>
      <dc:creator>Aditya Mukhopadhyay</dc:creator>
      <pubDate>Sat, 01 Feb 2020 15:01:01 +0000</pubDate>
      <link>https://dev.to/adityamukho/civicgraph-a-versioning-data-store-for-time-variant-graph-data-1pja</link>
      <guid>https://dev.to/adityamukho/civicgraph-a-versioning-data-store-for-time-variant-graph-data-1pja</guid>
      <description>&lt;p&gt;I would like to introduce an open source, Apache 2.0 licensed project of mine: &lt;a href="https://github.com/CivicGraph/CivicGraph"&gt;https://github.com/CivicGraph/CivicGraph&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CivicGraph is a versioned-graph data store - it retains all changes that its data (vertices and edges) have gone through to reach their current state. It supports point-in-time graph traversals, letting the user query any past state of the graph just as easily as the present.&lt;/p&gt;

&lt;p&gt;It is a &lt;a href="https://www.arangodb.com/why-arangodb/foxx/"&gt;Foxx Microservice&lt;/a&gt; for &lt;a href="https://www.arangodb.com/"&gt;ArangoDB&lt;/a&gt; that features VCS-like semantics in many parts of its interface, and is backed by a transactional event tracker. It is currently being developed and tested on ArangoDB v3.5, with support for v3.6 in the pipeline.&lt;/p&gt;

&lt;p&gt;CivicGraph is a potential fit for scenarios where data is best represented as a network of vertices and edges (i.e., a graph) having the following characteristics:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Both vertices and edges can hold properties in the form of attribute/value pairs (equivalent to JSON objects).&lt;/li&gt;
&lt;li&gt;Documents (vertices/edges) mutate within their lifespan (both in their individual attributes/values and in their relations with each other).&lt;/li&gt;
&lt;li&gt;Past states of documents are as important as their present, necessitating retention and queryability of their change history.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Its API is split into 3 top-level categories:&lt;/p&gt;

&lt;h3&gt;
  
  
  Document
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Create&lt;/strong&gt; - Create single/multiple documents (vertices/edges).&lt;br&gt;
&lt;strong&gt;Replace&lt;/strong&gt; - Replace entire single/multiple documents with new content.&lt;br&gt;
&lt;strong&gt;Delete&lt;/strong&gt; - Delete single/multiple documents.&lt;br&gt;
&lt;strong&gt;Update&lt;/strong&gt; - Add/Update specific fields in single/multiple documents.&lt;br&gt;
&lt;strong&gt;(Planned) Explicit Commits&lt;/strong&gt; - Commit a document's changes separately, after it has been written to DB via other means (AQL / Core REST API / Client).&lt;br&gt;
&lt;strong&gt;(Planned) CQRS/ES Operation Mode&lt;/strong&gt; - Async implicit commits.&lt;/p&gt;

&lt;h3&gt;
  
  
  Event
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Log&lt;/strong&gt; - Fetch a log of events (commits) for a given path pattern (path determines scope of documents to pick). The log can be optionally grouped/sorted/sliced within a specified time interval.&lt;br&gt;
&lt;strong&gt;Diff&lt;/strong&gt; - Fetch a list of forward or reverse commands (diffs) between commits for specified documents.&lt;br&gt;
&lt;strong&gt;(Planned) Branch/Tag&lt;/strong&gt; - Create parallel versions of history, branching off from a specific event point of the main timeline. Also, tag specific points in branch+time for convenient future reference.&lt;br&gt;
&lt;strong&gt;(Planned) Materialization&lt;/strong&gt; - Point-in-time checkouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  History
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Show&lt;/strong&gt; - Fetch a set of documents, optionally grouped/sorted/sliced, that match a given path pattern, at a given point in time.&lt;br&gt;
&lt;strong&gt;Filter&lt;/strong&gt; - In addition to a path pattern like in 'Show', apply an expression-based, simple/compound post-filter on the retrieved documents.&lt;br&gt;
&lt;strong&gt;Traverse&lt;/strong&gt; - A point-in-time traversal (walk) of a past version of the graph, with the option to apply additional post-filters to the result.&lt;/p&gt;

&lt;p&gt;I hope some of you may find this a useful service to address several types of data modelling challenges pertaining to retention and querying of historical graph data.&lt;/p&gt;

</description>
      <category>eventstore</category>
      <category>historicalgraph</category>
      <category>arangodb</category>
      <category>foxx</category>
    </item>
  </channel>
</rss>
