F# Microservices - A few questions

Good day,

I’m really new to both F# and EventStore so bare with me.

I’m trying to do a microservices PoC using F# and EventStore.

I have 3 console apps: a client, and two services, with 2 to 3 topics on ES.

The client sends a message out on topic1, and service1 listens. Service 1 receies then sends out on a topic2 to which service2 listens. Service2 replies on topic2.

Question 1

The issue I’m having is that the first message that goes out by the client is always ignored. If I restarted the services, it is picked up, but it can never see the first message in a stream when it first arrives. After the initial restart, all is fine. I’ve tried seeding the stream at startup, but it doesn’t help.

Sending topics out on “es.AppendToStreamAsync” and subscribing using “es.SubscribeToStreamFrom” using the “EventStoreCatchUpSubscription” lambda.

Question 2

The other issue I’m having is related to a service listening and pushing to the same topic.

This works:

Client -> stream1 -> Service1 -> stream2 -> Service2 -> stream3 -> Service1

This doesn’t work:

Client -> stream1 -> Service1 -> stream2 -> Service2 -> stream2 -> Service1

So when I reuse a stream to call back, it fails, but if I use a seperate stream to call back (stream3) it works fine. Any thoughts?

Thanks!