Nodinite enables End to End logging either from the use of any of the "out of the box ready to go" Log Agents or from your own solutions based on your own code. This enables you and Nodinite to use synchronous and asynchronous message exchange logging patterns.
BizTalk, Mule, Logic Apps, ...] roLogSink("fal:fa-bolt Custom Logging Solution") --> roId1["fal:fa-list Queue
..."] end subgraph Web Server roLogAPI(fal:fa-cloud-download LogAPI) roPS(fal:fa-truck-pickup Pickup Service)--> roLogAPI roId1 -.Log Event.-x roPS roLogSink --> |Log Event|roLogAPI roMessageBroker --> |Log Event| roLogAPI end
Architectural example with synchronous and asynchronous logging
We at Nodinite promote the use of asynchronous logging patterns
A Log Event is an object represented as a JSON object and can be shipped either directly using the REST based Log API or you can send the very same JSON object to a persistent storage for Nodinite Pickup Service to fetch asynchronously. The latter means that:
- Your logging solutions has no dependency on the Log API (reboot/update whenever you like)
- You don't have to implement retries
- You don't have to be lucky.... Running async is good for concurrency and the Pickup Service has limited number of threads and will not overload the Log API
- ... this list can grow very large
Log Event (Mandatory) - Generic information about the event (like time, message type name and endpoint) - WHEN, HOW
- Payload (Optional) - The business transaction with data, usually xml, json, flat file like EDI/X12 or zip file - WHAT
- Context Properties (Optional) - Key value based collection of arbitrary data - (for example InvoiceId and CorrelationId) - WHAT
- With the Context Options you can control the behaviour of how Nodinite processes events
LogDateTime = 2018-05-03 13:37:00+02:00
EndPoint = https://api.nodinite.com/...
...] end subgraph Payload ro[fal:fa-envelope Message
base64EncodedMessage] end subgraph Context Properties roKey[fal:fa-key Key Values
InvoiceNo = 123
...] end end
Architectural layout of a Log Event
The Log API has the following entities defined:
Follow the 'Log using REST' article to learn more.
Follow the 'Log using WCF' article to learn more.
Log Events can "auto populate" the Repository Model with special content. This will drastically reduce the amount of adminstration and the know how is transferred from developers to the business/IT Operations/AM-teams.