ar3cka / journalist Goto Github PK
View Code? Open in Web Editor NEWServerless event store based on windows azure storage table.
License: Apache License 2.0
Serverless event store based on windows azure storage table.
License: Apache License 2.0
This message is in Debug level now, but there is no point in this message while debugging. Also, there is directly opposite message about received notifications which contains useful for debugging process information, including the fact it exists.
I suggest Verbose level.
It would be great, if Journalist.WindowsAzure has batch delete feature like "Delete everything with partition key "CA1C9EFE-6669-44AB-8F5C-7596498F9A57"".
PendingNotificationsStreamPointQuery is also needed to get all PN for one stream in asc order.
If there are no changes in these event streams their events would never be published.
It is forbidden to use this method on queue when its client is authenticated with shared access signature token. This cause runtime error even if queue does exist. It may not be created though, but it is exceptional situation and should be treated as such - with throwing 404 error when queue is requested.
Simplify usage pattern Option.Select(T a => a == b).GetOrDefault(false) with following extension method Option.IsTrue(T a => a == b)
There are three common argument exceptions - ArgumentException, ArgumentNullException, ArgumentOutOfRangeException. There should be a possibility to throw any of them on an arbitrary check though leaving most common checks throwing predefined exceptions as checking sugar for simplicity. Thanks in advance.
best regards,
Alexander Alexeev
It would be nice to separate Require and Ensure code contracts into separate project alike Ensure.That or Guards.Net.
best regards,
Alexander Alexeev
We found next exception:
{ [-]
Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (500) Internal Server Error. ---> System.Net.WebException: The remote server returned an error: (500) Internal Server Error.
at System.Net.HttpWebRequest.GetResponse()
at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 677 --- End of inner exception stack trace --- at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand
1 cmd, IRetryPolicy policy, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:line 604
at Microsoft.WindowsAzure.Storage.Queue.CloudQueue.CreateIfNotExists(QueueRequestOptions options, OperationContext operationContext) in c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Queue\CloudQueue.cs:line 162
at Journalist.WindowsAzure.Storage.StorageFactory.<>c__DisplayClass6_0.b__0()
at System.Lazy1.CreateValue() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Lazy
1.get_Value()
at Journalist.WindowsAzure.Storage.Queues.CloudQueueAdapter.AddMessageAsync(Byte[] content)
at Journalist.EventStore.Notifications.Channels.NotificationsChannel.d__17.MoveNext()
Request Information
RequestID:2cd0c103-9003-003b-6c87-9b36ee000000
RequestDate:Mon, 24 Dec 2018 12:52:16 GMT
StatusMessage:Operation could not be completed within the specified time.
Level: Error
MachineName: RD0003FF2CD2C1
MessageTemplate: Notification sending failed. Notification: {@Notification}.
Notification: { [-]
DeliveryCount: 0
FromVersion: { [-]
_typeTag: StreamVersion
}
IsAddressed: false
NotificationId: { [-]
_typeTag: NotificationId
}
NotificationType: Journalist.EventStore.Notifications.Types.EventStreamUpdated
StreamName: somestream-41abfe87-0915-4b13-beac-28b72a5892c8
ToVersion: { [-]
_typeTag: StreamVersion
}
_typeTag: EventStreamUpdated
}
SourceContext: Journalist.EventStore.Notifications.Channels.NotificationsChannel
Timestamp: 2018-12-27T15:40:23.2052697+03:00
}
NotificationsChannel swallowed the exception and the notification was deleted in PendingNotificationsChaser.ProcessStreamNotificationAsync and was never sent.
I had to look into the sources to figure out that null-valued token has to be an empty byte[] array.
This is far from obvious, moreover, original Azure API is okay with null continuation tokes, which makes a normal person assume that it should be ok in Journalist wrapper as well, but it's not.
Otherwise binary serialization fails
It seems to be useful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.