Coder Social home page Coder Social logo

interopspec's Introduction

Engine Interoperability Specification

Protocol Buffers and gRPC definitions that help improve interoperability between different Dogma engine implementations.

Documentation Latest Version Build Status Code Coverage

interopspec's People

Contributors

dependabot[bot] avatar jmalloc avatar github-actions[bot] avatar danilvpetrov avatar dogmatiq-automation[bot] avatar

Stargazers

Nil avatar

Watchers

 avatar James Cloos avatar Kevin Millar avatar  avatar

interopspec's Issues

Change event stream API to support multiple ways of specifying the "start point".

A ConsumeRequest currently requires an offset, but this should just be one of several different ways to specify the start point within the stream.

We should have a message type named something like StartAtOffset that contains the offset, and ConsumeRequest can use a one_of to allow this type or any future types we may add.

Event stream partitioning.

The current event stream API does not allow specification of a stream within an application. It is assumed that every application has exactly one stream (as is the case with Verity).

We need to support multiple streams per application. This could be done by adding an additional piece of information to the API - a "partition ID" or "stream ID".

Another approach would be to simply rename "application ID" to "stream ID" within the consume request. Verity would simply use the application as the stream ID, whereas Veracity would be free to expose multiple streams with other IDs.

Regardless of the approach taken, the event stream API will need a way to enumerate the available streams.

There may also be a requirement to include "site" information in the API.

Add "site" concept to message envelope, etc.

This is a "site" in the NServiceBus sense, that is, an "installation site" of a specific application. It serves to disambiguate between two separate deployments (not just separate running instances) of a particular application.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.