Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial implementation #1

Open
wants to merge 17 commits into
base: master
Choose a base branch
from
Open

initial implementation #1

wants to merge 17 commits into from

Conversation

prolic
Copy link
Member

@prolic prolic commented Jul 7, 2017

No description provided.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 5042095 on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 5cea7e9 on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling e0a7fba on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 13a179b on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 6cadd12 on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling cf12dac on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 33d2c7b on implementation into ** on master**.

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling 05ba0e8 on implementation into ** on master**.

@prolic prolic changed the title [WIP] initial implementation initial implementation Jul 24, 2017
@prolic
Copy link
Member Author

prolic commented Jul 24, 2017

ping @codeliner ready for review

@coveralls
Copy link

Coverage Status

Changes Unknown when pulling e296d52 on implementation into ** on master**.

@prolic
Copy link
Member Author

prolic commented Jul 28, 2017

ping @codeliner

case 405:
throw new NotAllowed();
default:
throw new RuntimeException('Unknown error occurred');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What happens if event-store-http-api is (temporarily) not available? Can we catch that situation and throw a NotAvailable exception that can be caught for retry?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same question for all API communication of course

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure, let me check.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

k


public function createQuery(): Query
{
throw new \BadMethodCallException(__METHOD__ . ' not implemented');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this be possible in future versions?

I'm asking because the use case is very interesting. If service A publishes its event stream via http api, service B could consume it using http-lug-event-store with a projection

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be nice, indeed. But I am not yet sure on how this can be implemented.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should rethink projections one more time. I plan an experiment once the new arangoDB event store is ready (with the native php extension developed by @sandrokeil and @martin-schilling). You can add stream processing capabilities to arango similar to the mongodb 3.6 stream watch feature.

The streaming API provides a way to start at a specific position in the stream and consume messages from that position forward (maybe we can use http/2 to establish a permanent connection). If a new message is written to the stream it is pushed to the consumer as long as the consumer watches the stream.

The consumer on the other side uses a local store to remember current stream position.
Maybe server and consumer need to run within an event loop. With react/http supporting PSR-7 now this becomes a very interesting field to explore.

@codeliner
Copy link
Member

great work like usual ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants