Skip to content

This is an In Memory Queue. which allows consumers to listen to the messages and producer to produce the messages.It also allows consumers to add dependency for retrieval by making graph of consumer dependencies and performing topological sorting on them.

Notifications You must be signed in to change notification settings

abhinavp105/InMemoryQueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InMemoryQueue

Problem Statement:

Design an efficient in-memory queueing system with low latency requirements Functional specification:

● Queue holds JSON messages

● Allow subscription of consumers to messages that match a particular expression

● Consumers register callbacks that will be invoked whenever there is a new message

● Queue will have one producer and multiple consumers

● Consumers might have dependency relationships between them. For ex, if there are three consumers A, B and C. One dependency relationship can be that C cannot consumer a particular message before A and B have consumed it. C -> (A,B) (-> means must process after)

● Queue is bounded in size and completely held in-memory. Size is configurable.

● Handle concurrent writes and reads consistently between producer and consumers.

● Provide retry mechanism to handle failures in message processing.

About

This is an In Memory Queue. which allows consumers to listen to the messages and producer to produce the messages.It also allows consumers to add dependency for retrieval by making graph of consumer dependencies and performing topological sorting on them.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages