Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 13:51
    kumaranimesh starred BrighterCommand/Brighter
  • Dec 04 11:09
    DevJonny unlabeled #309
  • Dec 04 11:09
    DevJonny labeled #309
  • Dec 04 11:09
    DevJonny labeled #309
  • Dec 04 11:09
    DevJonny assigned #309
  • Dec 04 11:07
    homcl edited #893
  • Dec 04 11:07
    homcl edited #893
  • Dec 04 11:05
    homcl review_requested #893
  • Dec 04 11:05
    homcl review_requested #893
  • Dec 04 11:05
    homcl ready_for_review #893
  • Dec 04 10:54
    homcl synchronize #893
  • Dec 04 08:27
    rcollina starred BrighterCommand/Brighter
  • Dec 04 05:23
    dependabot-preview[bot] labeled #927
  • Dec 04 05:23
    dependabot-preview[bot] opened #927
  • Dec 04 05:23
    dependabot-preview[bot] review_requested #927
  • Dec 04 05:23
    dependabot-preview[bot] review_requested #927
  • Dec 04 05:23

    dependabot-preview[bot] on nuget

    Bump System.Reflection.TypeExte… (compare)

  • Dec 04 05:23
    dependabot-preview[bot] labeled #926
  • Dec 04 05:23
    dependabot-preview[bot] review_requested #926
  • Dec 04 05:23
    dependabot-preview[bot] review_requested #926
Ian Cooper
@iancooper
I think the EventStore version is better than Raven if you don't want SQL
Ian Battersby
@ianbattersby
Done. Yeah, using ES a immutable transaction layer is also an interesting concept I've thought.
Ian Cooper
@iancooper
OK. Pushed that change. Support for RavenDb is dropped. If someone complains enough we can recover the code from SC and re-implement in some way that is more isolated i.e. separate tests
Ian Battersby
@ianbattersby

Done. Yeah, using ES a immutable transaction layer is also an interesting concept I've thought.

FYI; Like this: https://github.com/SzymonPobiega/NServiceBus.EventStore

Ian Cooper
@iancooper
@ianbattersby In essence this is @JontyMC's direction of travel with his reference data work. If you use EventStore as a message store, you can expose a stream that we directly consume instead of going via RabbitMQ
It turns out @JontyMC was not aware, but this exposing reference data as a stream is what Iain Robinson and Jim Webber covered in Rest In-Practice, though they wrote to an Atom Feed. I've just done a talk at Progressive.NET where I bastardized Mark Seeman's AtomStorage to do something very similiar (by badly abusing it) but its an interesting concept
I also know that Celery uses Redis to do this, and I believe that is quite common
Ian Cooper
@iancooper
PS I want to move the DB connections in the Tasks example to a SQLCE store for messaging, but I'll get to that as soon as I can
Jonathan Curtis
@JontyMC
IAmAMessageConsumerFactory has a Create method that takes in a routing key parameter. Shouldn't we be creating a consumer per queue, not per routing key?
Jonathan Curtis
@JontyMC
We have a situation in people where we've configured mulitple routing keys for the same queue
Brighter creates a consumer per routing key, so we now have multiple consumers for the same queue racing each other
each is on a separate thread, correct? so this could create an undesirable situation for versioning and requeuing
it also uses the routingkey for the consumer and the configured exchange name when logging, so that can be wrong
rmq sends that information on the message, so it could be passed over
Yiannis
@yiannistri
just opened #104 which has a tiny fix for the Requeue method
Jonathan Curtis
@JontyMC
IAmAChannelFactory uses routingKey in both its methods too. Looking at where routingKey is used, apart from logging it's only used to bind the queue to that routing key.
Ian Cooper
@iancooper
OK, so I think we can support multiple routing keys for one queue as RabbitMQ lets you bind to multiple topics. So the simple fix would be to allow that.
The alternative is to use wildcards on the topic
Understood on rmq for source of logs, we can look at that too
I'll raise the issues
Jonathan Curtis
@JontyMC
ok, thanks
Ian Cooper
@iancooper
OK raised 105, and 106
iancooper/Paramore#105 and iancooper/Paramore#106
George Ayris
@george-ayris
Morning, I'm just looking at ways to gracefully abort pipeline processing (e.g. if a pre-condition check fails) and was wondering: what happens if base.handle() is not called?
Ian Cooper
@iancooper
If you don't call base.handle you won't call a subsequent step, but will return to the calling step. You need to throw an exception
An exception is the preferred mechanism to exit a pipeline
@george-ayris Ask more though if that does not make sense
Benjamin Hodgson
@benjamin-hodgson
iancooper/Paramore#107
i have a couple more on my fork but want to discuss in person first because i have a feeling they will be more controversial
Benjamin Hodgson
@benjamin-hodgson
also iancooper/Paramore#108 (would be good to get that in asap)
once the ci build is done obv
Ian Battersby
@ianbattersby
We should probably internalize newtonsoft.. sigh
Benjamin Hodgson
@benjamin-hodgson
@holytshirt :+1: thank you
Stefano Ricciardi
@stefanoric
Hi guys, is there a way to have Brighter only log at a WARN level?
I need DEBUG logs from my app but Brighter is quite verbose
something like
    <logger name="Brighter">
        <level value="WARN" />
    </logger>
Ian Cooper
@iancooper
@stefanoric Just to check I understand. You want to filter out the noise from our logger apart from WARN and above? If so, don't forget we use LibLog, so we are just using an abstraction over your underlying logger. So whatever works for your logger will work for us. You create an instance of a logger to pass into us (as part of the builder normally), so you should be able to identify the logger name, and do something specific with that logger that meets your reporting needs, depending on the underlying logger you use.
@stefanoric Or to put it another way. This should be for your app to control, if we got it right :-)
Stefano Ricciardi
@stefanoric
We are using log4net, and I just needed to know if brighter had its own logger name (a-la NHibernate)
I'll have a look at the plumbing code (didn't write it myself)
Ian Cooper
@iancooper
I'll be plugging away at the Monitoring and Management stuff today. Possibly with a side journey into the CommandSource stuff to document and provide an example.
It will be a line like: var logger = LogProvider.For<Program>();
@stefanoric You pass it in. Look for where you are using CommandProcessorBuilder. I expect you'll be able to track back from there to where you set up LibLog
Stefano Ricciardi
@stefanoric
I have found the code
I see we do something like
Bind<ILog>().ToConstant(LogProvider.For<MyService>());
(this is Ninject IoC plumbing)
and ILog is brighter's interface
What I get in the code is something like: