- The Crystan Java library is intended for building small, separate components that talk via NATS messaging.
- I've been enjoying Java interface default methods, so I'm (over)using them here.
- I already have a converter for JSON message formats, but may soon add support for Fury, too.
- I'm using Java 21, but Crystan will probably work with Java 8.
- Crystan has 85% test coverage, with the automated unit and integration tests.
- Servers: Choose from SingleThreadServer or ServerCore (uses LMAX Disruptor).
- Clients: ClientCore
- The high-level clients and servers pass around a 'jobId' to correlate request and response messages.
- See the Integration Tests (*.IT.java) for examples of usage.
- Implement the BusConnector interface.
- Override the getOptions method to configure the NATS connection, if needed.
- If you want to send messages, implement the Publisher interface.
- If you want to receive messages, implement the Subscriber interface.
- You will need to provide functions to convert between your message objects and the NATS byte[] payloads.
- High-level level parts should support a file-based NATS connection configuration.
- What to do with high-level server performSideWork() method?
- Fix integration tests to run under Linux. Currently, they only run under Windows.
- Add support for Fury or other message formats.
License: Apache 2.0
