Skip to main content
18 events
when toggle format what by license comment
Aug 12 at 8:48 review Close votes
Aug 17 at 3:08
Aug 12 at 8:25 history protected gnat
Aug 11 at 10:02 history bumped CommunityBot This question has answers that may be good or bad; the system has marked it active so that they can be reviewed.
Jul 12 at 9:32 answer added Flater timeline score: -2
Jul 11 at 22:02 answer added J_H timeline score: 0
Jul 11 at 22:02 answer added Steve timeline score: 1
Jul 11 at 20:25 comment added SeeIfIDont (For clarification: The differences per store brand is basically: some fields are fed from different places in the source system; some products only show up in some stores. The model is not really different at all between store brands and the services are all built multi-tenant style to handle everything across all brands. The number of products changes, but at around a 5-10% difference across the entire repertoire. So it's not a good leverage point.)
Jul 11 at 20:22 comment added SeeIfIDont @user1937198 I certainly could, but that doesn't help us in the current architecture. All stores consume the same shape of data through the same services, the same frontends and so on. Outsourcing the differing data would unfortunately not save enough space to make a difference - I think even if it lopped off 70% it wouldn't make me less nervous about the things that I'm nervous about, being how data travels between steps.
Jul 11 at 20:19 comment added user1937198 For the per store brand metadata, could you for example have a dedicated service for just that metadata which only services interested in that store would subscribe to?
Jul 11 at 20:11 comment added SeeIfIDont @user1937198 The product catalog itself is 99% shared information, including some metadata that is different per store brand (descriptions, date launched), stored in the source system. And the product repertoire is heavily overlapping, with maybe 5-10% different between store brands.
Jul 11 at 20:10 comment added SeeIfIDont @user1937198 Several of the downstream systems don't care about any product information at all as such. Several downstream systems would produce feeds for limited subsets. But the base unit of information about each product is reasonably heavy, and for it to not be explicitly coupled to their needs, I image you have to store as much information as possible in the event. (Or you have to stuff all information in a separate place and then tell the other systems "go fish" for each individual product - but doing that for 200K products sounds like a very bad N+1 style inefficiency.)
Jul 11 at 20:07 comment added SeeIfIDont @freakish It's not 200k messages on the event bus as such - it's handling 200k things, and the various knock-on effects that can have for the various services as they process the message. What that is varies by service, but I imagine a scenario where it involves going to that service's data store to figure out if it's worth handling. If it takes more than half a second per message, you're spending a day, and so have to be clever about handling the messages lest you take your own arm off.
Jul 11 at 19:20 comment added user1937198 One question that may or may not be useful depending on your system: do you need a single product catalog? Can you slice off parts of the definition of a product entity or subsets of your catalog that are only relevant to some of the downstream systems?
Jul 11 at 19:17 review Close votes
Jul 16 at 3:03
Jul 11 at 19:15 comment added freakish 200k messages per day is not heavy at all. That's like 3 messages per second on average, it's nothing. Some people report Kafka capable of handling 1mln messages per second. Handling 10k per second is common, with pretty much any message broker.
Jul 11 at 19:12 comment added user1937198 For problem c, what are the sorts of downstream systems that need this information?
S Jul 11 at 18:56 review First questions
Jul 11 at 22:04
S Jul 11 at 18:56 history asked SeeIfIDont CC BY-SA 4.0