https://github.com/toniarnold/dmediatr
Distributed MediatR over gRPC with auto-renewing X509 client certificate TLS
https://github.com/toniarnold/dmediatr
Last synced: about 2 months ago
JSON representation
Distributed MediatR over gRPC with auto-renewing X509 client certificate TLS
- Host: GitHub
- URL: https://github.com/toniarnold/dmediatr
- Owner: toniarnold
- License: apache-2.0
- Created: 2024-12-01T09:01:21.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-02-18T12:16:09.000Z (3 months ago)
- Last Synced: 2025-02-18T13:25:28.165Z (3 months ago)
- Language: C#
- Size: 6.33 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
# DMediatR
**D**istributed [MediatR](https://github.com/jbogard/MediatR) over gRPC with
auto-renewing X509 client certificate TLS.Distribute an existing MediatR monolith across microservice nodes by inserting
a `D` in its `services.AddMediatR()` call and, after deployment, configure in
each appsettings.json whether messages will be handled locally or are delegated
to a specified node. If nothing is configured, the monolith works as before.For transmission over gRPC, MediatR messages are transparently binary serialized
using MessagePack. The serialization can be
[customized](https://toniarnold.github.io/DMediatR/docs/serializer.html) for
specific object types or interfaces.Validation of the generated X509 certificate chain ignores hostnames, it only
validates that the client and server certificates match. It is therefore
sufficient for the destination nodes to be reachable by DNS name or IP address,
just as for SSH, which is required to deploy the initial certificate chain.DMediatR nodes can also be deployed on Linux ARM
[IoT](https://toniarnold.github.io/DMediatR/docs/iot.html) devices such as a
Raspberry PI 3+. This allows them to interoperate seamlessly with Windows .NET
via DMediatR.[Documentation](https://toniarnold.github.io/DMediatR/)
([C# API](https://toniarnold.github.io/DMediatR/api/DMediatR.html))NuGet Packages: [DMediatR](https://www.nuget.org/packages/DMediatR)
[Template](https://www.nuget.org/packages/DMediatRNodeTemplate)