JSONAssert
RabbitMQ
Our great sponsors
JSONAssert | RabbitMQ | |
---|---|---|
2 | 92 | |
963 | 11,590 | |
0.1% | 1.8% | |
0.0 | 10.0 | |
8 months ago | 5 days ago | |
Java | Starlark | |
Apache License 2.0 | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JSONAssert
-
Unit Testing Backward Compatibility of Message Format
And finally, we check that the supplied json equals to the one we got on step 3 (I use JSONAssert library here). The false boolean parameter tells to check only overlapping fields. For example, if the actual result contains the addressV2 field and the expected object doesn’t, it won’t trigger the failure. That’s a normal situation because backward compatibility data is static while the OrderCreated might grow with new parameters.
-
Stop requiring only one assertion per unit test: Multiple assertions are fine
This can be improved, it'd be worth Googling for a better solution than what you have.
https://github.com/skyscreamer/JSONassert seems decent.
but it can be done from scratch in a few hours (I'd recommend this if you have 'standardized' fields which you may want to ignore):
1) Move to a matcher library for assertions (Hamcrest is decent), and abstract `toJSON` into the a matcher, rather on the input.
This would change the assertion from:
`assertEquals(toJson(someObject), giantJsonBlobFromADifferentFile)`
to:
`assertThat(someObject, jsonEqual(giantJsonBlobFromADifferentFile))`
The difference here is subtle: it allows `jsonEqual` to control the formatting of the test failure output, so on a failure you can:
* convert both of the strings back to JSON
* perform a diff, and provide the diff in the test output.
Decent blog post on the topic: https://veskoiliev.com/use-custom-hamcrest-matchers-to-level...
RabbitMQ
-
Building Llama as a Service (LaaS)
Although they did not make it into production, I experimented with the RabbitMQ message broker, Python (Django, Flask), Kubernetes + minikube, JWT, and NGINX. This was a hobby project, but I intended to learn about microservices along the way.
-
A Developer's Journal: Simplifying the Twelve-Factor App
Messaging/Queueing Systems (Amazon SQS, RabbitMQ, Beanstalkd)
-
FastStream: Python's framework for Efficient Message Queue Handling
Later, we discovered Propan, a library created by Nikita Pastukhov, which solved similar problems but for RabbitMQ. Recognizing the potential for collaboration, we joined forces with Nikita to build a unified library that could work seamlessly with both Kafka and RabbitMQ. And that's how FastStream came to be—a solution born out of the need for simplicity and efficiency in microservices development.
-
The Complete Microservices Guide
Inter-Service Communication: Middleware provides communication channels and protocols that enable microservices to communicate with each other. This can include message brokers like RabbitMQ, Apache Kafka, RPC frameworks like gRPC, or RESTful APIs.
-
Project Structure Review [.Net] [Console]
This is an implementation of pub/sub. The publisher is on a separate project. The message broker is Azure Service Bus. We use NServiceBus for code implementation. I use rabbitMQ broker for local tests. Nothing I can do about the tech stack. This is more of a high level single project structure review 😅
-
The Role of Queues in Building Efficient Distributed Applications
RabbitMQ is a robust and highly configurable open-source message broker that implements the Advanced Message Queuing Protocol (AMQP).
-
Should I chain calls in backend?
When using third-party services, especially within a "transaction", it's often a good idea to use a persistent Message Queue (MQ) system like RabbitMQ. Go through all their tutorials to get a really good understanding of how message queues work and how they can be used to solve your problem.
- Node still seems better than python after all this time for web server speed but..
-
Delayed events pattern, no more crons
The best technical solution to provide the event queues is to use a message-broker technology like RabbitMQ.
- RabbitMQ 3.12.0 Released
What are some alternatives?
Spock - The Enterprise-ready testing and specification framework.
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
AssertJ - AssertJ is a library providing easy to use rich typed assertions
mosquitto - Eclipse Mosquitto - An open source MQTT broker
Hamcrest - Java (and original) version of Hamcrest
MediatR - Simple, unambitious mediator implementation in .NET
TestNG - TestNG testing framework
nsq - A realtime distributed messaging platform
REST Assured - Java DSL for easy testing of REST services
BeanstalkD - Beanstalk is a simple, fast work queue.
Mockito - Most popular Mocking framework for unit tests written in Java
rq - Simple job queues for Python