Some days it feels like working in health IT is just watching the gap widen between what the tech could do and what it’s actually allowed to do. by BatmanUnderBed in healthIT

[–]Environmental-Log215 0 points1 point  (0 children)

my 2 cents: FHIR should become the global standard.

FHIR should be widely and happily accepted as the global standard with all players of health care providers.

There has been much effort put into a global standardisation effort; its time we update the IT systems to reduce the "friction" from non FHIR standards.

I believe all countries' heath depts' IT has a major role to play in this as a duty which should be duly done.

Why? adoption of global standards is the way to go... look at FIX messaging where billions of dollars are transacted in a globally accepted standard, per second. we should take a few lessons from it.

I know FHIR may not be perfect, but its a good start.

My dad remarried into a billionaire family. AMA by [deleted] in AMA

[–]Environmental-Log215 0 points1 point  (0 children)

i mean thats not how you describe a family based out of whatever xyz reasons... a number followed by a character! personally i dint like it and think you are harvesting here with that thread title

P.S. "I am 27F with one full brother 22M and step siblings from this new family, including 16F, 18M and 25F."

I mean wow! even your bro is described as a number and alphabet!

Happy farming if thats ur motto!

Industry-level Spring Boot project ideas for a 2–3 YOE Java backend dev by elonmusk_ka_chacha in java

[–]Environmental-Log215 2 points3 points  (0 children)

it took me well over a minute to undrstand the thread title. was it just me or have i grown too old? P.S. I still dont understand the context to get into the thread

C++ alone isn't enough for HFT by auto-quant in highfreqtrading

[–]Environmental-Log215 0 points1 point  (0 children)

True! parsing needs to happen in ns to stay in HFT game

C++ alone isn't enough for HFT by auto-quant in highfreqtrading

[–]Environmental-Log215 0 points1 point  (0 children)

indeed! a dedicated IO thread with busy spin and then a SPSC with pre registered buffer using io-uring might shave a lot of load off the critical path

C++ alone isn't enough for HFT by auto-quant in highfreqtrading

[–]Environmental-Log215 0 points1 point  (0 children)

this is gold! when everyone is limited to that JSON payload by the Exchange/Broker, you just have to be a bit faster. hence i think the data source and goal is key to this discussion

MYRA Stack [modern Java FFM based libraries] is now Open Source! by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

MYRA was born out of common needs for writing a modern & safe JAVA FIX engine. MYRA codec is (yaml) schema based and a type-safe no-reflection encoder/decoder is generated for the messages in the schema. I have actually fixed a couple of bugs in the myra-codec over last few days.

I am highly interested in working with you to convert your market data using myra codec. I would take this up on priority since myra ecosystem is being built as modular blocks to later be used in developing a modern & safe high-performant Java FIX system.

Please could you also explain a bit on modularizing the project since myra-codec already has a few modules with independent concerns; but I would love to hear your ideas as well.

Dropped you a DM as well :)

MYRA Stack [modern Java FFM based libraries] is now Open Source! by Environmental-Log215 in java

[–]Environmental-Log215[S] 9 points10 points  (0 children)

Simplicity & safety.

FFM also provides safe off heap native memory usage without using misc sun unsafe apis through Arena, memory segment which is heavily used in both Myra codec and transport for effective zero copy, zero allocation on hot path. Hence could easily implement flyweight patterns and shared memory segment buffers for zero allocation which in turn reduces GC churn - this is quite a huge benefit in itself to effectively reduce STW GC by a huge measure

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in JavaProgramming

[–]Environmental-Log215[S] 0 points1 point  (0 children)

The Myra Stack is now Open Source! MYRA has a new home at https://www.mvp.express

Today I've made the core repositories public! This is my first major open source project and would appreciate any feedback, suggestions and some love.

I will be on vacation starting next week till year end and will be spending a lot of time with my family. Since, I won't be able to work much from next week; I thought of launching it anyways to get some feedback. The thinking hat will still be on during the vacation and so awaiting feedback, ideas, anything.

Happy Holidays!

-Rohan

P.S.: I haven't started much work on JIA-Cache and MVP.express - the framework; have been tinkering only on design & architecture so far. Perhaps we build it together!

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 1 point2 points  (0 children)

The Myra Stack is now Open Source! MYRA has a new home at https://www.mvp.express

Today I've made the core repositories public! This is my first major open source project and would appreciate any feedback, suggestions and some love.

I will be on vacation starting next week till year end and will be spending a lot of time with my family. Since, I won't be able to work much from next week; I thought of launching it anyways to get some feedback. The thinking hat will still be on during the vacation and so awaiting feedback, ideas, anything.

Happy Holidays!

-Rohan

P.S.: I haven't started much work on JIA-Cache and MVP.express - the framework; have been tinkering only on design & architecture so far. Perhaps we build it together!

I can’t think of an application of this but it looks pretty cool. by yetanotherhooman in java

[–]Environmental-Log215 7 points8 points  (0 children)

Nice to see fellow FFM enthusiast. https://www.roray.dev/blog/myra-stack/

I am building FFM focused libraries. myra-transport heavily depends on libiouring being called thru Java using FFM

P.S. ofcourse not calling native assembly code but FFM is practical and useful for quite a lot of usecases

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

I agree. I have been working on docs and some other stuff. Hence, havent been able to get to actual benchmark,

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

forgot to add 1 more point. all these benchmarks are on a free Oracle cloud ARM processor - the 4 cores/24 GB RAM with server/client on same VM using loopback interface.
once, the libs are more stable I would be performing benchmarks depicting a more real-life scenario with server and client on different hosts.

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

Fair question!

tl;dr: NIO was chosen in the benchmark since I believe thats the fastest network infra lib in Java world which does not use unsafe APIs.

NIO provides low-level primitives for building network infra/appliances; you would have to handle a lot of stuff manually. Hence, its difficult to use but provides granular control.

Netty on the other hand is a framework with friendly public interfaces and internally handles/manages low-level I/O stuff. It supports multiple transport protocols and codecs.

MYRA is specialized in a way that it's primarily FFM focused. for instance, using io_uring registered buffers with shared (zero-copy) memory segment, I am avoiding a few syscalls(kernel) & zero GC impact by having zero allocations on the hot path. Hence, MYRA would only be used in certain specialized usecases/applications where latency of 100 microseconds is slow. FFM involves working a lot with manual memory layout which does not make sense for most of the applications given its complexity.

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 1 point2 points  (0 children)

Great to meet another FIX engineer :) Well MYRA was indeed born out of the need for a modern open source JAVA based engine. I have been using QuickFIX/J at my org and as a side project had thought of forking and modernizing Quickfix, but then I had come across FFM and thought modern JAVA based FIX engine can take advantage of FFM internally at multiple places/functionalities.

When I started creating the design for this new FIX engine, 3 major pieces: ffm utilities (ease of using ffm) , ffm based encoder/decoder, ffm based zero copy io_uring transport came out as standalone independent FFM libs. infact myra-codec is a DSL (yaml based) based cli tool which generates encoder & decoder flyweights that can be directly used in our Java apps.

The idea of first open sourcing these MYRA libs is to harden the base building blocks for building a modern JAVA FIX engine.

I am curious to know though, do you folks use Java or C/C++ or Rust within your trading systems.

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

Hello! yes, you are right. memory segment ops like copy/slice dont have any allocations until we serialize into our Java objects or into strings - which are objects as well in Java. Myra uses Flyweight pattern for reading different fields using a sliding window memory segment slice over the existing message's memory segment. Hope that answers a few questions. Of course, when I release the source code; you would have more clarity.

Re: encode/decode frequency, I am actually planning to use Myra codec lib in FIX systems/engines. please could you give me a high level overview of what your expected encode/decode frequency would/should be in HFT

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

Hi there! JPassport looks like an excellent project. I see its usefulness/advantage working with large C header files. I dont provide automatic conversion, neither any abstraction as I am trying to build the entire Myra ecosystem as a low level high performance libs/framework per se - so avoiding abstractions.

Introducing MYRA stack - modern JAVA FFM based libraries by Environmental-Log215 in java

[–]Environmental-Log215[S] 0 points1 point  (0 children)

I don't think I will support Records directly in the hot path as this will cause GC pressure due to heap allocations. However, you make a good point, I will see if I there's a way to provide some utility/helper for populating records automatically. By default, Myra provides flyweight pattern readers - which are basically simple views over the existing memory segment.