Skip to content

lsfera/Tesseract

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TESSERACT

TesseractLogo

A library of NetCore tools to help rapidly develop well performant micro/macroservices.

Prototypes you could send to production!

Why Make A Tesseract Powered Dataflow

Dataflows have concurrency, serailization, monitoring, compression, and encryption all as first class citizens. This paradigm allows developers to just focus on the important stuff - getting work done. Dataflows pay attention to the extra dimensions so you don't have to!

Here are some features ready with RabbitMQ today, tomorrow - the world!

Queueing

  • Async Processing
  • Retriability
  • Chaos Engineering
  • Connection/Channel Durability provided by HouseofCat.RabbitMQ formerly CookedRabbit.Core.

Built-Ins

  • Supports ILogger<T>
  • Concurrency/Parallelism - baked in from the ground up.
  • Contracted WorkState/WorkObject simplifies development and integration.
  • Has Json (3 flavors) and MessagePack serialization providers.
  • Allow transparent encryption/decryption steps.
  • Allow compression/decompression steps to reduce trip time over the wire.
  • Async Error Handling with Predicate triggers and an actionable callback.

Interchangeability

  • Allows you to replace serialization provider with HouseofCat Provider wrappers.
  • Allows you to replace encryption provider with HouseofCat Provider wrappers.
  • Allows you to replace compression provider with HouseofCat Provider wrappers.
  • Constructed to fully support Inversion of Control.

Business Logic

  • All steps process in the order provided allowing you to still control order of execution.
  • All automatically subscribed to Async Error handling by WorkState.IsFaulted flag.

Testing

  • All built-in steps will have integration tests that should remove concerns from end-user developer.
  • Future case will include much more complex abstract UnitTesting as time allows.
  • The developer should only need to unit test their functional business code.

Implicit Benefits

The benefits of a dataflow pattern extend beyond fancy machine learning and Tensorflows or high throughput GCP Dataflow for mass computation. When brought to the service level, it helps organize your code into more manageable blocks. You can still write monolithic functions, but you would be hamstringing yourself and scarificing concurrency and parallelism. By designing code into small functional steps, you always write better, cleaner, code reduced with cyclomatic complexity. That very same code is easier to UnitTest. The orchestration of the function calls are the order they are added allowing you extend the original functionality infinitely. You don't have to write deserialization or post-processing encryption/compression as they all baked in. Designing from the ground up with concurrency and parallelism, you stay nimble and fast - able to scale up internally, before horizontally and vertically, saving costs. All without needing code changed or refactored.

Lastly, after everything is said and done, all your business code is re-usable. Should you decide to abandon this workflow (:worried:) for a different mechanism, engine, or what not, all of your code will happily port to whatever other project / flow you are working with and so will all your testing making it a win win.

Help

You will find library usage examples in the examples folder. You also can find generic NetCore how-tos and tutorials located in there. The code quality of the entire library will improve over time. Codacy allows me to review code and openly share any pain points so submit a PR to help keep this an A rated library!

Check out each project for additional README.md. They will provide additional instructions/examples.

Status

Codacy Badge

master-build

Gitter

HouseofCat.Algorithms

NuGet
NuGet

A library that has a collection of algorithms as I have time to learn and play with them.

HouseofCat.Compression

NuGet
NuGet

A library that has a collection of builtin and 3rd party copmression providers.

HouseofCat.Compression.LZ4

NuGet
NuGet

A library that focuses on implementing the LZ4 compression provider.

HouseofCat.Dapper

NuGet
NuGet

A library that provides a standard for Dapper implementation.

HouseofCat.Dapper.LegacySqlServer

NuGet
NuGet

A library that provides a standard System.Data.SqlClient implementation.

HouseofCat.Dapper.SqlServer

NuGet
NuGet

A library that provides a standard Microsoft.Data.SqlClient implementation.

HouseofCat.Encryption

NuGet
NuGet

A library that provides encryption contracts.

HouseofCat.Encryption.BouncyCastle

NuGet
NuGet

A library that provides encryption from the BouncyCastle provider.

HouseofCat.Extensions

NuGet
NuGet

A library that focuses on extending functionality to other objects.

HouseofCat.Extensions.Host.Serilog

NuGet
NuGet

A library that focuses on extending IHost functionality to quickly setup Serilog.

HouseofCat.Extensions.Workflows

NuGet
NuGet

A library that focuses on extending functionality to other workflow related objects.

HouseofCat.Framing

NuGet
NuGet

A library that focuses on simplifying reading groups of byte[] (designated as frames).

HouseofCat.Gremlins

NuGet
NuGet

A library that focuses on Chaos Engineering. Currently targets Windows OS.

HouseofCat.Gremlins.SqlServer

NuGet
NuGet

A library that focuses on Chaos Engineering with SqlServer. Currently targets System.Data.SqlClient.

HouseofCat.Hashing

NuGet
NuGet

A library that focuses on implementing hashing.

HouseofCat.Hashing.Argon

NuGet
NuGet

A library that focuses on implementing Argon hashing.

HouseofCat.Logger

NuGet
NuGet

A library that focuses on getting Microsoft.Extensions.LoggerFactory implemented adhoc globally.

HouseofCat.Network

NuGet
NuGet

A library that focuses on making it easier to deal with systems networking.

HouseofCat.RabbitMQ

NuGet
NuGet

A library that focuses on RabbitMQ connection and channel management to create fault tolerant Publishers and Consumers.

Formerly CookedRabbit.Core
NuGet
NuGet

HouseofCat.RabbitMQ.Client

NuGet
NuGet

A library that focuses on cloning the official Pivotal/VMWare RabbitMQ DotNetClient but ported to pure NetCore 3.1/5.x with small code enhancements.

Formerly RabbitMQ.Core
NuGet
NuGet

HouseofCat.RabbitMQ.Pipelines

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ functionality by providing simplified TPL Dataflow usage called Pipelines.

HouseofCat.RabbitMQ.Services

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ to simplify using the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.Services.Mailkit

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ.Services to simplify using Mailkit (Email) with the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.Services.Twilio

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ.Services to simplify using Twilio (SMS/TextMessages) with the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.Workflows

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ functionality by providing robust Workflow support.

HouseofCat.Reflection

NuGet
NuGet

A library that focuses on Reflection hackery.

HouseofCat.Serilization

NuGet
NuGet

A library that focuses on making it easier to deal with Serialization.

HouseofCat.Serilization.Json.Newtonsoft

NuGet
NuGet

A library that focuses on making it easier to deal with Newtonsoft Json Serialization.

HouseofCat.Serilization.Json.Utf8Json

NuGet
NuGet

A library that focuses on making it easier to deal with Utf8Json Json Serialization.

HouseofCat.Serilization.MessagePack

NuGet
NuGet

A library that focuses on making it easier to deal with MessagePack Serialization.

HouseofCat.Sockets

NuGet
NuGet

A library that focuses on making it easier to deal with socket communication.

HouseofCat.Sockets.Utf8Json

NuGet
NuGet

A library that focuses on making it easier to deal with sockets communication with Utf8Json.

HouseofCat.Utilities

NuGet
NuGet

A library that focuses on general purpose utilities and functions that simplify the coding experience.

HouseofCat.Windows.Keyboard

NuGet
NuGet

A library that focuses on interacting, filtering, and/or replaying user inputs on Windows, specifically Keyboard.

HouseofCat.Windows.NativeMethods

NuGet
NuGet

A library that focuses on consolidating Windows NativeMethods calls used by my libaries.

HouseofCat.Windows.Threading

NuGet
NuGet

A library that focuses on simplifying affinity and thread management.

HouseofCat.Windows.WMI

NuGet
NuGet

A library that focuses on performing System.Management (Windows.Compatibility.Pack) WMI Queries.

HouseofCat.Workflows

NuGet
NuGet

A library that focuses on Task Parallel Library and rapid Function execution.

HouseofCat.Workflows.Pipelines

NuGet
NuGet

A library that focuses on a narrow TPL implementation of mine called Pipelines.

About

A set of libraries for rapidly developing Pipeline driven micro/macroservices.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 100.0%