Github user dawidwys commented on the issue:
    Hi @Aitozi , 
    Thanks for the work here. I think we could improve a bit separation of 
concerns in the SharedBuffer. I am a bit afraid this class will become too 
complex once again. How about we split the SharedBuffer into two layers: 
caching one(SharedBuffer) and accessing buffer e.g. `SharedBufferAccessor`.  We 
could make the accessor `AutoCloseable`. I think it would give more explicit 
information about the necessity to flush the buffer.
    We could move to `SharedBufferAccessor` methods like:
    - registerEvent
    - put
    - extractPatterns
    - materializeMatch
    - materializeMatch
    - lockNode
    - releaseNode
    - removeNode
    - lockEvent
    - releaseEvent
    In the `SharedBuffer` we would leave only the caching package-protected 
methods. We would also add a method there to get the `SharedBufferAccessor` 
that would `flush` the changes on `close`. This way we would have a cleaner 
separation, plus we would make the flushing more intuitive.
    What do you think?


Reply via email to