![Maven Central Adds Sigstore Signature Validation](https://cdn.sanity.io/images/cgdhsj6q/production/7da3bc8a946cfb5df15d7fcf49767faedc72b483-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Maven Central Adds Sigstore Signature Validation
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
@thisisagile/easy
Advanced tools
Straightforward library for building domain-driven microservice architectures
Straightforward library for building domain-driven microservice architectures, implementing a simple evolutionary architecture. This library is distilled from projects where the teams I've worked with built platforms based on a simple, common architecture where each service centers around a small part of the platform domain.
This library will include best and foremost simple practices to support building microservices, based on the following software architecture and patterns:
Microservices built with easy have a four layered architecture: services, process, domain, data. Each of the layers serves a single purpose and follows clear patterns and communications.
It is the responsibility of the classes in the data layer to fetch and deliver data from outside the microservices. This data can come from e.g. a file system, relational and other types of databases (we prefer document databases), or from other services on your domain, or from services outside your domain. Classes performing this function are called gateways.
In the domain layer there are supertypes to model the domain, such as entities, records, value objects and enumerations. The domain layer also knows the repository layer supertype, for handling instances of entities and structs.
Using easy your entities, as described in domain driven design, inherited from the Entity
class. This gives your entities identity. The default implementation of Entity
provides a generated id
property (it's a UUID by default). An example of an entity is the Movie
class below.
export class Movie extends Entity {
@required() readonly id: Id = this.state.imdbID;
@required() readonly title: string = this.state.Title;
@required() readonly year: number = this.state.Year;
readonly poster: string = this.state.Poster;
update = (add?: Json): Movie => new Movie(this.toJSON(add));
}
All classes that inherit from Record
or Entity
will have an internal object called state
. This allows for easy mapping of the content of an entity, which is usually JSON. We prefer to keep our entities immutable. An update should therefore always return a new instance of the entity, instead of modifying its state.
The process layer contains use cases, that model your process.
The services layer has resource as the layer supertype, to model the API exposed.
Additionally, this library contains utility classes for standardizing e.g. uri's, and ids, constructors, lists, queries, and errors.
This library will contain a simple validation mechanism, using decorators.
We keep this library simple on purpose, extending it using additional libraries and frameworks should be possible simply by embedding their API's.
Likely we will use jest for unit testing, wrap axios for request handling, and a simple mongodb connector, and wrap tsyringe for dependency injection.
Please note: we are slowly adding more value to the library, step by step. Most of our additions are useful as such, both it will take some effort for the full architecture to be in place to implement fully working microservices. Please bare with us.
FAQs
Straightforward library for building domain-driven microservice architectures
The npm package @thisisagile/easy receives a total of 0 weekly downloads. As such, @thisisagile/easy popularity was classified as not popular.
We found that @thisisagile/easy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.
Security News
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.